如何在Spring Boot中创建基于集合的参数化bean?

时间:2019-01-31 21:33:49

标签: spring-boot factory-pattern abstract-factory parameterization

我有两个接口和一个实现的类。

 - public interface Widget<C>
 - public interface WidgetContainer<C>
 - public class DefaultWidgetContainer<C>

DefaultWidgetContainer具有以下单个构造函数:

public class DefaultWidgetContainer<C> implements WidgetContainer<C>{
    public DefaultWidgetContainer(List<Widget<C>> widgetList){...}
}

我希望能够通过Autowired使用WidgetContainer,并且它附带了spring上下文中的Widget bean列表。 如何创建这样的对象 WITHOUT ,为我在Configuration带注释类中需要的每种类型显式创建一个新的参数化WidgetContainer? 示例:

//Beans created
@Component
public class TestWidgetOne implements Widget<MyDto>{}

@Component
public class TestWidgetTwo implements Widget<MyPojo>{}

//Beans configured for use
@Autowired //contains only TestWidgetOne
private WidgetContainer<MyDto> dtoWidgetContainer;

@Autowired //contains only TestWidgetTwo
private WidgetContainer<MyPojo> pojoWidgetContainer; 

0 个答案:

没有答案