Как создать параметризованные bean-компоненты на основе коллекции в Spring Boot? - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть два интерфейса и один реализованный класс.

 - 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){...}
}

Я хочу иметь возможность использовать WidgetContainer через Autowired, и этоПриходите со списком бобов Widget в контексте весны.Как мне создать такой объект БЕЗ , явно создав новый параметризованный WidgetContainer для каждого типа, который мне нужен в аннотированном классе Configuration?Пример:

//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; 
...