如何使用 spring 及其注释将多个 bean 自动注入 ArrayList 属性
how to auto inject multiple beans into an ArrayList property with spring and its annotation
例如我的 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
此代码应该有效:
@Autowired
private List<SitesBusiness> businesses;
例如我的 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
此代码应该有效:
@Autowired
private List<SitesBusiness> businesses;