的地圖使用XML註釋,我注射使用下面的配置地圖 -Spring註解 - 注射對象
<bean id = "customerfactory" class = "com.brightstar.CustomerFactory">
<property name = "getCustomerMap">
<map key-type = "java.lang.String" value-type = "com.brightstar.CustomerImpl">
<entry key = "DEFAULT" value-ref = "getDefaultImpl"></entry>
<entry key = "PERSON" value-ref = "getPersonImpl"></entry>
<entry key = "COMPANY" value-ref = "getCompanyImpl"></entry>
</map>
</property>
</bean>
我已經建立3種豆 - DefaultImpl,PersonImpl的和CompanyImpl。我如何使用Spring Annotation將它們注入地圖?
編輯:現在,我已經執行以下,但不知道是否是推薦的方法
private Map<String, CustomerImpl> getCustomerMap ;
@Autowired
private GetDefaultImpl getDefaultImpl;
@Autowired
private GetPersonImpl getPersonImpl;
@Autowired
private GetCompanyImpl getCompanyImpl;
private static final String DEFAULT = "DEFAULT";
private static final String COM = "PERSON";
private static final String SOM = "COMPANY";
@PostConstruct
public void init(){
getCustomerMap = new LinkedHashMap<String,CustomerImpl>();
getCustomerMap.put(DEFAULT, getDefaultImpl);
getCustomerMap.put(PERSON, getPersonImpl);
getCustomerMap.put(COMPANY, getCompanyImpl);
}
謝謝。在我的情況下,我必須注入屬性文件中不能出現的對象。 –
謝謝,這有助於。你能評論我的方法嗎?我會接受答案。 –
我不確定,@Postconstruct是初始化bean或管理bean的生命週期的最佳實踐,因爲它是JEE標準,但不是用於注入依賴項。但是,最佳實踐不是規則。 –