2015-04-04 64 views
2
@Component 
public class IServiceCollection { 
    @Resource 
    private IService service1; 
    @Resource 
    private IService service2; 
    @Resource 
    private IService service3; 
    @Resource 
    private IService service4; 
    @Resource 
    private IService service5; 

    public List<IService> getAllServices(){ 
    List<IService> iServiceList = new ArrayList<IService>(); 

    iServiceList.add(service1); 
    iServiceList.add(service2); 
    return iServiceList; 
    } 
} 

IServiceCollection我將把喜歡service1servvice2等很多IService豆類我想要得到的所有的服務組件的方法getAllServices()得到宣告春天豆在其他的Spring bean

如何將所有服務自動添加到列表中,而不是像上面的代碼那樣?

+0

看這個[回覆](http://stackoverflow.com/a/2799467/1066779) – Rembo 2015-04-04 03:26:01

回答

1

您有幾個選擇:

.1。如果在地圖注入這樣:

@Component 
public class IServiceCollection { 
    @Autowired 
    private Map<String, IService> services; 

,將在IService的所有實現與地圖是bean的名字

.2關鍵注入。你可以這樣注入一個列表:

@Component 
public class IServiceCollection { 

    @Autowired 
    private List<IService> services; 

再次,你會有一個IService實例列表。

+0

很好!謝謝 – how8586 2015-04-04 15:00:00