Spring использует одно приложение.properties для производства и другое для отладки

У меня есть приложение Spring, и я хотел бы иметь возможность переключаться между конфигурациями в зависимости от того, отлаживаю ли я сервер или работает ли сервер. (разница в конфигурациях - это такие вещи, как расположение базы данных).

В идеале я хотел бы передать аргумент командной строки моему приложению Spring при загрузке и установить конфигурацию приложения.

У меня есть два отдельных файла application.properties, один с производственными значениями, а другой с значениями отладки. Как я могу переключаться между ними?

Ответ 1

Вы можете иметь 3 файла свойств, application-dev.properties, application-prod.properties и application.properties. И вы можете указать все свойства разработки в ваших файлах свойств dev и свойствах создания cionfiguration в вашем файле prod

и укажите профиль в файлах application.properties как показано ниже.

spring.profiles.active=dev

или вы можете выбрать/переопределить профиль, используя -Dprofile= аргумент в командной строке.

Ответ 2

Весенние профили кажутся подходящими. Вы можете запустить свое приложение с помощью чего-то вроде -Dprofile =. Взгляните на этот пример.

EDIT: после повторного чтения вашего вопроса я пришел к выводу, что вам может потребоваться что-то более основное: поместите свои свойства базы данных извне. В зависимости от вашего приложения вы можете использовать @Value конфигуратора свойств. Взгляните на весенние документы.