Какой файл конфигурации был загружен? - PullRequest
0 голосов
/ 12 октября 2018

Приложение My Spring использует несколько файлов конфигурации:

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

Таким образом, мы можем использовать файлы конфигурации default.yml, local, yml, application, yml и dev.yml

Local.yml - это файл конфигурации, который конечный пользователь должен использовать для конфигурации.

Но как я могу проверить в коде Java, загружен ли local.yml?

1 Ответ

0 голосов
/ 12 октября 2018

В другом ответе я нашел подсказку.Вот что работает:

@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]$"));
}

Это получает все PropertySources, загруженные в контексте Spring.У каждого источника есть имя, а у файлов - имя в формате «applicationConfig: []».Поэтому я ищу там свой конфигурационный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...