У меня есть приложение с новейшей версией SpringBoot v.2.1.9. Проект содержит несколько пользовательских файлов со следующим шаблоном:
- file1-dev.properties
- file1-prod.properties
- file2-dev.properties
- file2-prod.properties и т. Д.
Я хочу достичь аналогичного поведения для приложения Spring - {profile} .properties, я имею в виду загрузку каждого пользовательского реквизита из файла, который соответствуетв активный профиль. Из-за огромного количества свойств я не могу хранить их в application- {profile} .properties, потому что это вызывает проблемы с читабельностью.
Я бы хотел найти строго Java-решение, без каких-либо обходных путей Maven с физической заменой файлов после сборки. Не могли бы вы посоветовать мне, как я могу достичь такого подхода?
Мое текущее предположение - переопределить метод инициализации из ApplicationContextInitializer, затем проверить профиль и выполнить логику для выбора файлов, однако я не уверен, что это наиболее эффективный подход.
Многиезаранее спасибо за помощь.
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
String profile = System.getProperty("spring.profiles.active");
//selecting files according to active profile
applicationContext.getEnvironment().getPropertySources().addLast(prop);
}