如果我有一个未知大小的文件列表resourceList
要加载,y如何加载它?
我见过@PropertySources
的用法,但似乎不能使用此方法,因为我只知道执行后的文件列表,(我通过带VM参数的操作获得它,文件是外部的)。
@PropertySources({
@PropertySource("classpath:application.properties"),
@PropertySource("classpath:anotherbunchof.properties")
})
我试过属性资源占位符配置器:
@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
List<String>configLocations = loadConfigLocations();
List<Resource> resourceList = new ArrayList<>();
configLocations.forEach(location -> resourceList.add(new FileSystemResource(location)));
configurer.setLocations(resourceList.toArray(new Resource[]{}));
return configurer;
}
但是这只解析注解@Value("${...
。如果我试图通过环境获得一些属性**,它是null**。
@Autowire
Environment env;
...
String myProp = env.getProperty("my.property")
1条答案
按热度按时间siotufzp1#
您可以使用ApplicationStartedEvent或ApplicationReadyEvent并根据需要更新属性。
也可以选择使用CommandLineRunner界面。
它们将按以下顺序运行
应用程序启动事件命令行运行程序应用程序就绪事件