【发布时间】:2013-05-28 05:13:44
【问题描述】:
我正在创建一个带有注释的 bean。
@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 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
我也试过这个
@Resource
private ArrayList<String> myFriends= new ArrayList<String>();
我收到以下异常
没有为依赖项找到类型为 [java.util.ArrayList] 的匹配 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@javax.annotation.Resource(shareable=true, mappedName=, description=, name=, type=class java.lang.Object, authenticationType=CONTAINER)}
请告诉我如何解决这个问题。
【问题讨论】:
-
你明白你在做什么,对吧?
-
@LuiggiMendoza。我正在尝试创建一个属性为 List 的 bean
-
您希望注射什么?
-
不,您正在尝试创建一个 bean 并从无处注入一个
ArrayList。您应该将对象实例作为接口实现者注入,而不是List或Map对象。此外,异常消息非常清楚:没有为依赖项找到类型为 [java.util.ArrayList] 的匹配 bean 并且 预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者 i>. -
@LuiggiMendoza。当我删除 Autowired 注释时,我收到异常,因为在类中找不到方法。