Как добавить расположение файла внешнего свойства в приложение Spring Boot, развернутое на tomcat 6?
У меня есть приложение Spring Boot, которое я настраиваю с аннотациями. У меня уже есть файлы application.properties и application-{profile}.properties с данными в них. Проблема в том, что теперь я хочу определить внешнее местоположение WAR на сервере Tomcat 6, где я могу разместить файлы конфигурации, которые имеют приоритет. То есть любые настройки, которые я помещаю в эти файлы свойств, должны превосходить любые значения в application.properties или application-{profile}.properties.
Как я могу сделать это самым простым способом?
Я уже пытался добавить @PropertySources, но это имеет более низкий приоритет в порядке файлов свойств, так что это не является возможным решением. Могу ли я легко изменить порядок загрузки файлов свойств?
Добавить переменные среды на сервер невозможно, так как это может повлиять на другие развернутые приложения. WAR-файл должен быть автономным и доставлять все, что ему нужно (кроме этого файла переопределения внешних свойств).
1 ответ
Вы можете настроить spring.config.location
как описано в документе, или вы могли бы реализовать EnvironmentPostProcessor
если вы хотите, чтобы это применилось независимо.
В этой университетской сессии в Devoxx есть пример, где мы показываем, как прочитать файл из домашнего каталога и добавить его после свойств командной строки. Вы можете сделать почти то же самое и заказать их так, как вы хотите.
Пример приложения доступен здесь, если вы хотите попробовать.