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

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

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

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

2 ответа

Решение

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

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

spring.profiles.active=dev

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

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

РЕДАКТИРОВАТЬ: после перечитывания вашего вопроса, я пришел к выводу, что вы на самом деле хотите что-то более базовое: внешние свойства вашей базы данных. В зависимости от вашего приложения вы можете использовать @Value конфигуратора свойств. Посмотрите на весенние документы.

Другие вопросы по тегам