当前位置: 首页 > 知识库问答 >
问题:

bean的属性未从util:list对象设置

通寂离
2023-03-14
<util:list id="childList">
        <ref bean="child1"/>
        <ref bean="child2"/>
        <ref bean="child3"/>
</util:list>
@Component
public class ListTest{

@Autowired
@Qualifier("childList")
private List<IParent> list;

public List<IParent> getList() {
    return list;
}

给出异常:org.springframework.beans.factory.beanCreationException:创建名称为“list test”的bean时出错:注入autowired依赖项失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:无法自动连接字段:private java.util.list com.spring3.componentscanfiltertest.listtest.list;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项[com.spring3.componentscanfiltertest.iparent]找到类型为[com.spring3.componentscanfiltertest.iparent]的匹配bean[com.spring3.componentscanfiltertest.iparent]:至少需要一个符合此依赖项自动候选条件的bean。依赖项注释:{@org.SpringFramework.Beans.Factory.Annotation.AutoWired(required=true),@org.SpringFramework.Beans.Factory.Annotation.Qualifier(value=ChildList)}

但如果我将@autowired和@qualifier:@resource(Name=“childlist”)

它起作用了。为什么?根据我的理解,@autowired用于自动连接按类型匹配的属性,@qualifier用于从多个不明确的bean中选择任何一个bean。

请解释一下。

共有1个答案

宦飞
2023-03-14

Spring docs说。

这种语义差异的一个具体后果是,本身被定义为集合或映射类型的bean不能通过@autowired注入,因为类型匹配不适用于它们。对此类bean使用@resource,通过唯一名称引用特定的集合或映射bean。

希望这能消除你的疑虑。

 类似资料:
  • 我正在尝试反序列化一个 JSON 响应,其中包含一些标准字段和一个包含子类属性的 嵌套对象,例如: 字段< code>id和< code>type是标准的,所以我有一个基类< code>Base,然后扩展一些更具体的类: 如何让杰克逊读取 对象作为进一步字段值的来源?我假设我需要创建一个自定义反序列化程序,但我不确定如何具体完成此操作。

  • 所有对象属性都有默认值。然而,改变一些属性设置以定制图形可能有用。有两个途径可以设定对象属性: 创建对象时指定属性值。 在现有的对象中设置属性值 从作图命令设定属性 类似作图函数,在诸如plot, mesh, 和surf的创建对象用的函数也可以指定对象属性值为变元。 例如,可以用创建线或表面的作图命令来指定属性名称和属性值为二元变元。命令 plot(x,y,'LineWidth',1.5) 以x

  • 我有一个包含如下值的对象 这些都在变量autossuggest中。现在我只想获得值 谢谢你的小费

  • 问题内容: 检查JavaScript中的对象属性是否为最佳方法是什么? 问题答案: 检查属性值是否为特殊值的通常方法是: 要检查对象是否实际上没有这样的属性,并因此在尝试访问它时默认情况下将返回: 检查与标识符关联的值是否为特殊值, 或者 尚未声明该标识符。注意:此方法是引用 未声明的标识符(注意:与的值不同)的唯一方法,且不会出现早期错误: 在ECMAScript 5之前的JavaScript版

  • 问题内容: 因此,我在回答这个问题的同时一直在使用Python,但发现这是无效的: 由于 。但是,对于从对象继承的任何类,它都是有效的: 打印将按预期显示“ hello”。为什么会这样呢?在Python语言规范中,有哪些规定不能将属性分配给香草对象? 问题答案: 为了支持任意属性分配,对象需要一个:与对象关联的字典,可以在其中存储任意属性。否则,就无处放置新属性。 的实例object并没有随身携带

  • 问题内容: 有没有一种方法可以设置javascript对象的默认属性,例如: IE可以忽略,Chrome Frame减轻了我的头痛。 问题答案: 自从几年前我问这个问题以来,事情进展顺利。 代理是ES6的一部分。以下示例可在Chrome,Firefox,Safari和Edge中运行: