在项目中的任何类里访问弹簧配置的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 

}  
} 
+0

你可以使用'@ autowired'吗? – wdc

多种方式注入:

  • 在你的应用环境文件,为您的企业定义的另一个bean C lass并使用构造函数或setter注入,注入一个hashmap。为此,您将不得不提供参数化构造函数或属性设置器,具体取决于它是否可以使用或不使用hashmap。
  • 使用自动有线注释

标注BusinessClass类@Component,让Spring容器实例化。