【发布时间】:2016-09-22 20:23:29
【问题描述】:
例如我的 Action 中有一个数组列表属性。
private ArrayList<SitesBusiness> businesses;
SitesBusiness 只不过是一个接口,而此属性旨在包含所有实现 SitesBusiness 的 bean。
问题是我想使用 spring 注释机制将所有实现 SitesBusiness 的 bean 自动注入到业务中。
有人可以帮忙吗?非常感谢。
我尝试在这种方法上使用 AutoWired 来完成这项工作
@Autowired
public void addBusiness(SitesBusiness business) {
System.out.println("SitesAction, addBusiness.DI1210, business.identifier: " + business.getIdentifier());
for (int i = 0; i < this.businesses.size(); ++i) {
if (GlobalMethods.getInstance().checkEqual(this.businesses.get(i), business) || GlobalMethods.getInstance().checkEqual(this.businesses.get(i).getIdentifier(), business.getIdentifier())) {
return;
}
}
this.businesses.add(business);
}
不幸的是,这就是我得到的:
expected single matching bean but found 2: accountBusiness,diaryBusiness
【问题讨论】:
-
如果你用 List 替换 ArrayList 应该可以工作
-
@Autowired List<SitesBusiness> businesses;可以工作。 -
@manish 谢谢,将类型更改为 List 时,Autowired 正常工作。这对我来说完全是一种魔法。很抱歉,我不知道如何将您的答案标记为正确答案。