java – Spring Annotations – 注入对象的Map
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Spring Annotations – 注入对象的Map,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1891字,纯文字阅读大概需要3分钟。
内容图文
![java – Spring Annotations – 注入对象的Map](/upload/InfoBanner/zyjiaocheng/727/6d84f15a89424872a8f8e4fbb8b96406.jpg)
使用XML注释,我使用下面的配置注入一个地图 –
<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个bean – 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);
}
解决方法:
1.注入包含对象的Map(使用Java Config)
你可以这样做……
@Configuration
public class MyConfiguration {
@Autowired private WhiteColourHandler whiteColourHandler;
@Bean public Map<ColourEnum, ColourHandler> colourHandlers() {
Map<ColourEnum, ColourHandler> map = new EnumMap<>();
map.put(WHITE, whiteColourHandler);
//put more objects into this map here
return map;
}
}
====================
2.注入包含字符串的Map(使用属性文件)
您可以使用@Value注释和SpEL将属性文件中的String值注入Map中.
例如,属性文件中的属性下方.
propertyname={key1:'value1',key2:'value2',....}
在你的代码中,
@Value("#{${propertyname}}")
private Map<String,String> propertyname;
注意:1.The标签作为注释的一部分.
2.Values must be quotes, else you will get SpelEvaluationException
内容总结
以上是互联网集市为您收集整理的java – Spring Annotations – 注入对象的Map全部内容,希望文章能够帮你解决java – Spring Annotations – 注入对象的Map所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。