我是Spring注释的新手。
我有以下YAML配置:
configLists:
- listItem1
- listItem2
mainConfig:
listItem1:
listingName: listItem1
property1: testing-value-1
property2: testing-value-2
storageprop: example/storage/loc-2
listItem2:
listingName: listItem2
property1: testing-value-1
property2: testing-value-2
storageprop: example/storage/loc-2在Spring注释和配置的帮助下,我想动态地创建类。也就是说,由于在mainConfig、listItem1和listItem2下有两个配置,所以应用程序应该只在单个类的帮助下创建两个实例。
如何在Spring引导应用程序中使用@Bean、@Configuration和其他注释?
在创建实例时,可以在运行时将配置传递给类吗?
任何有关这方面的帮助都将不胜感激。
谢谢,
阿维纳什·德什穆赫
发布于 2019-04-25 16:33:49
您可以执行以下操作:
创建一个用@ConfigurationProperties注释的简单bean类,如下所示:
@Component
@ConfigurationProperties("mainConfig")
public class AppProperties {
private Map<String, ListItem> listItems;
public static class ListItem {
private String listingName;
private String property1;
private String property2;
private String storageProp;
// setters, getters
}
// setters, getters
}现在,我假设您只是想通过注入代码来访问代码中不同的"listItem“属性。
在配置类中创建bean:
@Configuration
class AppConfiguration {
@Autowired
private AppProperties appProperties;
@Bean("listItem1")
public ListItem useListItem1() {
return appProperties.getListItems().get("listItem1");
}
@Bean("listItem2")
public ListItem useListItem2() {
return appProperties.getListItems().get("listItem2");
}
}https://stackoverflow.com/questions/55848616
复制相似问题