我是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 Boot应用程序中使用@ Bean,@ Configuration和其他注释?
在创建实例时是否可以在运行时将配置传递给类?
对此有任何帮助。
谢谢
Avinash Deshmukh
答案 0 :(得分:1)
您可以执行以下操作:
创建一个简单的带有@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");
}
}