加载了哪个配置文件?

时间:2018-10-12 08:12:16

标签: java spring-boot

我的Spring应用程序使用多个配置文件:

spring.config.name = default,local,application,dev

因此我们可以使用配置文件default.yml,local,yml,application,yml和dev.yml

local.yml是最终用户用于配置的配置文件。

但是如何加载local.yml才能检入Java代码?

1 个答案:

答案 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:[]”。所以我要在那里搜索我的配置文件。