@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
中,我将引用许多IService
bean,例如service1
,servvice2
等。我想在方法getAllServices()
中获取所有服务bean。与上面的代码不同,如何将所有服务自动添加到列表中?
最佳答案
您有几种选择:
.1。如果您以这种方式注入地图:
@Component
public class IServiceCollection {
@Autowired
private Map<String, IService> services;
它将在IService的所有实现中注入,映射的键为bean名称
.2。您可以通过以下方式插入列表:
@Component
public class IServiceCollection {
@Autowired
private List<IService> services;
同样,您将拥有IService实例的列表。