SpringJava配置包注入映射

SpringJava配置包注入映射,java,spring,Java,Spring,我最近从使用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

我最近从使用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>
我不明白为什么Spring将映射包装到另一个映射中,为什么它的行为与XML配置不同


有什么想法吗?

在定义bean名称的映射中存在一个问题,因为根据注释,您不能使用建议的
@Resource
注释,因此可以使用定义bean名称的
@Value
注释:

@Bean
public MyClass myBean(@Value("#{myMap}") final Map<String, Object> myMap) {
//..
}
@Bean
公共MyClass myBean(@Value(“#{myMap}”)最终映射myMap){
//..
}

可能会像这里说的那样使用@Resource:?不幸的是,我不能使用
@Resource
解决方案,因为这些bean位于不同的文件/不同的模块中。如果我使用
@Resource
,我会在模块的上下文之间创建一个循环引用循环。
{ myMap = { a=aValue, b=bValue, c=cValue } }
@Bean
public MyClass myBean(@Value("#{myMap}") final Map<String, Object> myMap) {
//..
}