Загрузить файл активных свойств при весенней загрузке - PullRequest
0 голосов
/ 23 октября 2019

Я хочу прочитать значения из активного профиля или могу сказать активный файл свойств. У меня есть три файла свойств

  • application-dev.properties
  • application-stage.properties
  • application-prod.properties

Я установил для активного профиля значение dev следующим образом

spring.profiles.active=dev

В моем файле application-dev.properties есть одна запись, которую я хочу прочитать в своем классе.

application-dev.properties file

fix.connection.type=initiator

Я пытался прочитать эту запись

@Configuration
@PropertySource("classpath:application-${spring.profiles.active}.properties")
@Component
public class AdaptorDestination {
    @Value("${fix.connection.type}")
    private String connectionType;
}

Исключение

nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.profiles.active' in value "classpath:application-${spring.profiles.active}.properties"

Пожалуйста, помогите мне

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Вам не нужно использовать аннотацию @PropertySource, чтобы загрузить свойство с помощью аннотации @Value. Spring автоматически загрузит свойство @Value из текущего активного профиля.

Кроме того, вам не нужно указывать ${spring.profiles.active} в аннотации @PropertySource, поскольку Spring по умолчанию всегда загружает свойства из текущего активного профиля. ,Spring автоматически разрешает имя файла на основе суффикса профиля.

Таким образом, вам нужно только указать базовое имя файла, например: @PropertySource("classpath:application.properties") Если текущий активный профиль - "dev", Spring сначала загрузит свойства с application.propertiesфайл, а затем переопределить их со свойствами из application-dev.properties файла.

Вы можете прочитать больше здесь

0 голосов
/ 23 октября 2019

Вы можете использовать аннотацию @Profile("profile-name"), чтобы определить, когда выполнять метод.

Пружинные профили

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