Я хотел бы создать приложение Spring Boot (упакованное как WAR), которое автоматически переопределяет некоторый файл конфигурации в зависимости от среды, в которой он развернут.Я также хочу, чтобы файл свойств был внешним по отношению к WAR.Я использую в качестве ОС Centos и Tomcat в качестве веб-сервера.
Я пытаюсь проследить ответ Владимира Митева на следующий вопрос Аналогичный вопрос .
Чтобы добиться этого, я создал эту переменную среды SPRING_CONFIG_ADDITIONAL_LOCATION.Затем в пути я создал файл db.properties, содержащий свойство, которое я хотел бы переопределить.
Затем в инициализаторе сервлета я поместил эту конфигурацию:
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyApplication.class).properties("spring.config.name: db");
}
}
Этодругой необходимый класс:
@SpringBootApplication
public class MyApplication{
public static void main(String[] args) {
System.setProperty("spring.config.name", "db");
SpringApplication.run(MyApplication.class, args);
}
}
Но Spring Boot во время инициализации не находит файл db.properties.
В официальной документации кажется, что я должениспользуйте это «spring.config.additional-location» для достижения моей цели, но я не понимаю, как.