2017-09-11 39 views
0

嘗試在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

回答

1

多種方式注入:

  • 在你的應用環境文件,爲您的企業定義的另一個bean C lass並使用構造函數或setter注入,注入一個hashmap。爲此,您將不得不提供參數化構造函數或屬性設置器,具體取決於它是否可以使用或不使用hashmap。
  • 使用自動有線註釋
0

標註BusinessClass類@Component,讓Spring容器實例化。