使用嵌套bean时Spring不起作用的依赖项注入

使用嵌套bean时Spring不起作用的依赖项注入,spring,dependency-injection,autowired,Spring,Dependency Injection,Autowired,我正在尝试使用Spring,但在将其用于案例时遇到了问题。 我有以下代码: <util:map id="someMap" value-type="java.util.Set"> <entry key="a" value-ref="setA"/> <entry key="b" value-ref="setB"/> </util:map> <util:set id="setA"> <value>A<

我正在尝试使用Spring,但在将其用于案例时遇到了问题。 我有以下代码:

<util:map id="someMap" value-type="java.util.Set">
    <entry key="a" value-ref="setA"/>
    <entry key="b" value-ref="setB"/>
</util:map>

<util:set id="setA">
    <value>A</value>
</util:set>

<util:set id="setB">
    <value>B</value>
</util:set>

A.
B
使用以下Java代码(使用@Qualifier获取“someMap”):

a.b.c包;
公共类{
私人最终地图;
@自动连线
公共SomeClass(@限定符(“someMap”)最终映射someMap){
this.someMap=someMap;
}
}
它给了我以下的错误:

org.springframework.beans.factory.UnsatifiedPendencyException:创建名为“a.b.c.SomeClass”的bean时出错:通过索引为[java.util.Map]类型的构造函数参数表示的未满足的依赖项:未找到依赖项[Map with value type java.util.Set]的[java.util.Set]类型的匹配bean:应至少有1个bean符合此依赖项的autowire候选项的条件。依赖项注释:{@org.springframework.beans.factory.annotation.Qualifier(value=someMap)};嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:未找到依赖项[map with value type java.util.Set]类型为[java.util.Set]的匹配bean:至少需要1个符合此依赖项autowire候选项条件的bean。依赖项注释:{@org.springframework.beans.factory.annotation.Qualifier(value=someMap)}


看起来它找不到布景,但我不知道为什么会这样。您将如何解决此问题?

我希望您使用的是spring 4.3或更高版本 尝试添加mapclass,键类型

<util:map id="AdditionalParams" map-class="java.util.HashMap" 
          key-type="java.lang.String" value-type="java.lang.String">

我希望您使用的是spring 4.3或更高版本 尝试添加mapclass,键类型

<util:map id="AdditionalParams" map-class="java.util.HashMap" 
          key-type="java.lang.String" value-type="java.lang.String">


我找到了解决此问题的方法。我不得不使用
@Value(“#{@someMap}”)
而不是
@Qualifier(“someMap”)
我找到了解决这个问题的方法。我不得不使用
@Value(“#{@someMap}”)
而不是
@Qualifier(“someMap”)

你使用的是spring 4.3或更高版本吗。较低的spring版本,你不能用spring 4.3或更高版本自动连接一个集合。较低的spring版本,你不能自动连接一个集合谢谢。这当然帮助我想出了解决办法。谢谢。这当然帮助我想出了解决办法。