我正在编写一个自定义spring starter,我需要根据application.properties中定义的属性注册一个相同类型的bean列表
我在 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;
}
}
我想在 Spring Boot 应用程序中简单地用 qualifer 自动装配我的 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),以便我可以简单地使用带有限定符的自动装配?