Использование весеннего профиля для одного и того же боба - PullRequest
0 голосов
/ 11 марта 2020

Привет, я немного запутался в использовании профилей весной. Мой сценарий: у меня есть файл пользовательских свойств. И это значения изменений для каждой среды (dev, test, prod). Я использую один и тот же bean-компонент для каждой среды. Но Я хочу изменить значения для каждой среды. В этих файлах свойств все ключи одинаковы, различаются только их значения.

mydev.properties 
mytest.properties
myprod.properties

Итак, как мне реализовать логи профиля c для моего кода в моем сценарии (Бин такой же, значения разные)

//Here is my bean
@Component
@PropertySource("my.properties")
@ConfigurationProperties(prefix = "my")
public class MyProperties
{
....

Я добавлю «spring.profiles.active» в свой собственный источник, и этого достаточно?

//I plan to add spring.profiles.active

 @Component
 @PropertySource("my${spring.profiles.active}.properties")
@ConfigurationProperties(prefix = "my")
public class MyProperties
{
....

1 Ответ

1 голос
/ 11 марта 2020

Пожалуйста, go через Spring Boot. Ссылка: Раздел 2.4. Специфичные для профиля c Свойства

В дополнение к файлам application.properties специфичные для профиля свойства также можно определить с помощью следующего соглашения об именах: application- {profile} .properties.

Необходимо определить свойства профиля c в application-{profile}.properties и объявить активный профиль

Вы можете использовать spring.profiles.active Environment свойство, указывающее, какие профили активны.

Чтобы ответить на ваш вопрос, значение свойства для текущего активного профиля будет привязано к компоненту. Также обратите внимание, что

Свойства профиля c загружаются из тех же мест, что и стандартные application.properties, а файлы профиля c всегда переопределяют не определенные c, независимо от того, находятся ли специфичные для профиля файлы внутри или за пределами вашего упакованного фляги.

Если указано несколько профилей, применяется стратегия последних побед. Например, профили, указанные в свойстве spring.profiles.active, добавляются после профилей, настроенных с помощью API SpringApplication, и поэтому имеют приоритет.

В вашем случае идеальный способ определить спецификацию профиля c свойства будут

application-dev.properties

application-test.properties

application-prod.properties

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...