大佬教程收集整理的这篇文章主要介绍了Spring Java配置包装注入的地图,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有一个问题@autowired
-Map甚至定义了bean的名称,并且由于注释,您不能使用建议的@resource
注释,因此可以使用@Value
定义bean
的注释来替代:
@Bean
public MyClass myBean(@Value("#{mymap}") final Map<String, Object> mymap) {
//..
}
最近,我从使用Spring的XML配置切换到了Java配置,并遇到了一个奇怪的问题。
XML配置为:
<util:map id="mymap">
<entry key="a" value="aValue"/>
<entry key="b" value="bValue"/>
<entry key="c" value="cValue"/>
</util:map>
<bean id="myBean" class="my.MyClass">
<property name="mymap" ref="mymap"/>
</bean>
Java配置为:
@Bean
public Map<String,Object> mymap() {
Map<String,Object> mymap = new HashMap<>();
mymap.put("a","aValue");
mymap.put("b","bValue");
mymap.put("c","cValue");
return mymap;
}
@Bean
public MyClass myBean(@Qualifier("mymap") final Map<String,Object> mymap) {
MyClass myBean = new MyClass();
myBean.setMymap(mymap);
return myBean;
}
两种bean在不同的文件中声明,我在这里将它们分组以便于阅读。该映射也包含引用,而不仅仅是字符串。
我希望能够@H_571_3@mymap在第二个bean中使用,但Spring会注入以下映射:
{ mymap = { a=aValue,b=bValue,c=cValue } }
我不明白为什么Spring会将地图包装到另一个地图中,以及为什么它与XML配置的行为方式不同。
有任何想法吗?
以上是大佬教程为你收集整理的Spring Java配置包装注入的地图全部内容,希望文章能够帮你解决Spring Java配置包装注入的地图所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。