Spring boot在不同位置搜索application.properties
:
在classpath,当前文件夹,/ config文件夹等等。
是否有一种以同样的方式加载任何资源的简单方法?
例如,我想加载文件:
并自己解析,而不是属性文件。
有没有一种简单的方法可以让spring boot找到它们,就像它在不同的位置搜索application.properties一样?
答案 0 :(得分:1)
简短的回答是,没有办法向Spring Boot询问此问题。但是,您可以查看他们的所有代码。如果您查看他们的ConfigFileApplicationListener类,您可以看到他们如何将DEFAULT_SEARCH_LOCATIONS定义为查找配置文件的位置列表,并将它们存储在Set中。然后,他们使用ResourceLoader循环并检查每个位置是否存在所需的资源。如果您查看他们的代码及其resource documentation,我相信您可以构建自己的服务,从可能的位置列表中获取文件。
答案 1 :(得分:0)
PropertySourcesPlaceholderConfigurer
用于在启动时加载属性,您可以像application.properties一样访问其属性
@Bean
public PropertySourcesPlaceholderConfigurer loadResources() {
PropertySourcesPlaceholderConfigurer resourceConfigurer = new PropertySourcesPlaceholderConfigurer();
resourceConfigurer.setLocations(new ClassPathResource("file1"), new ClassPathResource("file2), new ClassPathResource("file3"));
resourceConfigurer.setIgnoreUnresolvablePlaceholders(false);
resourceConfigurer.setIgnoreResourceNotFound(false);
return resourceConfigurer;
}
注意:在PropertySourcesPlaceholderConfigurer
注册的文件之后加载application.properties