@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,例如service1servvice2等。我想在方法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实例的列表。

07-24 19:59