程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring Java配置包装注入的地图大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring Java配置包装注入的地图?

开发过程中遇到Spring Java配置包装注入的地图的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring Java配置包装注入的地图的解决方法建议,希望对你解决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,请注明来意。