Как объединить бины одного типа в массив, используя только аннотации? - PullRequest
0 голосов
/ 07 мая 2018

У меня есть несколько бобов:

@Bean
public MyBean myBean1(){
    return new MyBean(1);
}

@Bean
public MyBean myBean2(){
    return new MyBean(2);
}

@Bean
public MyBean myBean3(){
    return new MyBean(3);
}

Я хотел бы объединить их в одну коллекцию и передать в качестве аргумента. Что-то вроде:

@Bean
public MyFinalBean myFinalBean(Collection<MyBean> myBeans){
    return new MyFinalBean(myBeans);
}

Можно ли комбинировать бобы только с аннотациями? То есть без использования отдельного метода с applicationContext.getBeansOfType(MyBean.class);?

1 Ответ

0 голосов
/ 07 мая 2018

Spring может автоматически соединять все bean-компоненты, реализующие один и тот же интерфейс, в одну коллекцию этого интерфейса. Следующий код работает правильно:

@Bean
public MyFinalBean myObject(List<MyBean> lst) {
    return new MyFinalBean(lst);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...