Я пишу собственный весенний стартер, в котором мне нужно зарегистрировать список beans того же типа на основе свойства, определенного в application.properties
У меня есть следующие свойства в application.properties
mybean.names = mybean1, mybean2
mybean1.foo = foo1
mybean2.foo = foo2
mybean1.bar = bar1
mybean2.bar = bar2
Текущая реализация класса автоконфигурации ниже
@Configuration
@ConditionalOnClass(MyBeanFactory.class)
public class MyBeanAutoConfiguration {
@Autowire
Environemnt evn;
@Bean(name = {"mybean1"})
public MyBean getBean() {
String[] names = StringUtils.commaDelimitedListToStringArray(evn.getProperty("mybean.names"));
MyBean mybean = new Mybean(evn.getProperty(names[0] + ".foo"),
evn.getProperty(names[0] + ".bar"));
return myBean;
}
}
И я хочу просто выполнить автоподключение с квалификатором моего bean-компонента в приложении весенней загрузки, как показано ниже
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
@Autowired
@Qualifer("mybean1")
MyBean mybean;
public static void main(String[] args) {
SpringApplication.run(VaultApplication.class, args);
}
Как можно Я изменяю свой класс автоконфигурации, чтобы создать несколько bean-компонентов с разными именами, определенными в файле свойств (в этом случае, как я могу создать bean-компонент mybean2), чтобы я мог использовать просто autowire с квалификатором?