我的Spring应用程序使用多个配置文件:
spring.config.name = default,local,application,dev
因此我们可以使用配置文件default.yml,local,yml,application,yml和dev.yml
local.yml是最终用户用于配置的配置文件。
但是如何加载local.yml才能检入Java代码?
答案 0 :(得分:0)
在另一个答案中,我发现了一个提示。这是可行的:
@Autowired
private Environment environment;
/**
* Checks if the local.yml was loaded.
*
* @return true if the local.yml was laoded
*/
public boolean isLocalAppConfigLoaded() {
MutablePropertySources propertySources = ((AbstractEnvironment)environment).getPropertySources();
return StreamSupport.stream(propertySources.spliterator(), false)
.filter(propertySource -> propertySource instanceof EnumerablePropertySource)
.map(PropertySource::getName)
.anyMatch(sourceName -> sourceName.matches("^applicationConfig: \\[.*?local.yml]$"));
}
这将在此Spring上下文中对所有PropertySources
进行排名。每个源都有一个名称,文件的名称格式为“ applicationConfig:[]”。所以我要在那里搜索我的配置文件。