在项目中的任何类里访问弹簧配置的applicationContext中的HashMap
问题描述:
尝试在applicationContext中创建(Key,Value)对(即HashMap),并尝试通过@Resource注解从类访问它。在项目中的任何类里访问弹簧配置的applicationContext中的HashMap
但它无法注入哈希映射并在@Resource变量中获得null。
的ApplicationContext:
<bean id="explicitWaitTime" class="java.util.HashMap">
<constructor-arg>
<map key-type="java.lang.String" value-type="java.lang.String">
<entry key="COSCO" value="15"/>
<entry key="Hamburg" value="15"/>
</map>
</constructor-arg>
</bean>
商务舱:
public class BusinessClass implements IBusinessClass {
@Resource
private Map<String, String> explicitWaitTime;
@Override
public void getExplicitWaitMaps() { // From IBusinessClass interface
System.out.println("ExplicitWaitTime " +
explicitWaitTime.get("COSCO"); //explicitWaitTime is null
}
}
答
多种方式注入:
- 在你的应用环境文件,为您的企业定义的另一个bean C lass并使用构造函数或setter注入,注入一个hashmap。为此,您将不得不提供参数化构造函数或属性设置器,具体取决于它是否可以使用或不使用hashmap。
- 使用自动有线注释
答
标注BusinessClass
类@Component,让Spring容器实例化。
你可以使用'@ autowired'吗? – wdc