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

无法将数组列表作为依赖项注入

水瀚漠
2023-03-14

我正在创建一个带有注释的豆子。

@Component
public class MyClass
{

    @Autowired
    private ArrayList<String> myFriends= new ArrayList<String>();

   //Getters and setters  

}

我遇到以下异常

无法自动连线字段:private java.util.ArrayList com.mypackage.MyClass.myFriends;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到 [java.util.ArrayList] 类型的匹配 bean,用于依赖关系:预计至少有 1 个 bean 符合此依赖关系的自动连线候选条件。Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

我也试过这个

@Resource
    private ArrayList<String> myFriends= new ArrayList<String>();

我遇到以下异常

未找到依赖项的[java.util.ArrayList]类型的匹配bean:应至少有1个bean符合此依赖项的autowire候选。依赖项注释:{@javax.annotation.Resource(shareable=true,mappedName=,description=,name=,type=class java.lang.Object,authenticationType=CONTAINER)}

请让我知道如何解决这个问题。

共有1个答案

瞿兴朝
2023-03-14

在 XML 文件中,您需要定义一个列表。

在XML文件中包含util名称空间,并添加以下bean定义。

<util:list id="myFriends">
 <value>string1</value>
 <value>string2</value>
 <value>string3</value>
</util:list>

您需要将变量的类型更改为List

@Component
public class MyClass {
    @Autowired
    @Qualifier("myFriends")
    private List<String> myFriends= new ArrayList<String>();
    //Getters and setters
}

链接到 util:list http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/xsd-config.html#xsd-config-body-schemas-util-list 的 spring 参考文档

 类似资料:
  • 我已经尝试了几种方法来将依赖项注入我的实现中,但没有任何效果。我已经尝试了几乎所有的stackoverflow线程。我正在使用HiberNate Validator来实现自定义验证。我希望被注入

  • 问题内容: 我想将依赖项注入。但是,我的方法不起作用。我可以看到Spring正在调用我的setter方法,但是稍后在调用when时,该属性为。 这是我的设置: ServletContextListener: web.xml :(这是文件中的最后一个侦听器) applicationContext.xml: 输出: 实现此目的的正确方法是什么? 问题答案: 我通过删除侦听器bean并为我的属性创建了一

  • 问题内容: 我试图将Spring依赖项注入到JPA EntityListener中。这是我的侦听器类: 这是我的Entity类: 但是,我的依赖项(即)始终为null。 问题答案: 注入对无状态bean的依赖关系的一种方法是将依赖关系定义为“静态”,创建一个setter方法,以便Spring可以注入依赖关系(将其分配给静态依赖关系)。 将依赖项声明为静态。 创建一个方法,以便Spring可以注入它

  • 我对依赖项的选项“包括父母”有点困惑: Maven依赖插件的列表目标 http://maven.apache.org/plugins/maven-dependency-plugin/list-mojo.html 在我看来,pom本身的父对象似乎不包括在列表中(我指的是我们应用目标的项目pom的父对象)。是真的这样还是我犯了什么错误?如果是的话,有没有办法也获得项目的父pom? 例子: 我使用了or