简体   繁体   English

如何使用spring及其注释将多个bean自动注入ArrayList属性

[英]how to auto inject multiple beans into an ArrayList property with spring and its annotation

eg i have an array list property in my Action. 例如,我在动作中有一个数组列表属性。

    private ArrayList<SitesBusiness> businesses;

and SitesBusiness is nothing but an interface, and this property is intended to contain all beans which implements SitesBusiness. 和SitesBusiness只是一个接口,该属性旨在包含实现SitesBusiness的所有bean。

the question is that i want to use spring annotation mechanism to auto inject all the beans that implements SitesBusiness into businesses. 问题是我想使用spring注释机制将实现SitesBusiness的所有bean自动注入企业。

Any one can help? 有人可以帮忙吗? Many thanks. 非常感谢。

i tried to use AutoWired on this method to do the job 我试图在这种方法上使用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);
     }

Unfortunately, this is what i got: 不幸的是,这就是我得到的:

     expected single matching bean but found 2: accountBusiness,diaryBusiness

This code should work: 此代码应工作:

@Autowired
private List<SitesBusiness> businesses;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM