@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。如果您以这种方式注入(inject) map :
@Component
public class IServiceCollection {
@Autowired
private Map<String, IService> services;
这将注入(inject) IService 的所有实现,映射的键是 bean 名称
.2。您可以通过这种方式注入(inject)列表:
@Component
public class IServiceCollection {
@Autowired
private List<IService> services;
您将再次获得 IService 实例列表。
关于java - 在另一个 spring bean 中声明了 spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29442148/