Файл свойств PropertySource игнорируется при сканировании файла свойств env - PullRequest
0 голосов
/ 09 апреля 2020

В моем весеннем загрузочном проекте у меня есть файл свойства env (application-dev.prop), помещенный непосредственно в папку ресурсов, в этом проп-файле определены некоторые свойства соединения. Те же свойства соединения с другим значением, определенным в файле user.properties (который должен быть введен в указанном классе конфигурации c), помещенном в ресурсах / config.I аннотировал этот указанный c класс конфигурации с @PropertySource (value = "путь к классам: /config/user.properties"). Но, тем не менее, этот класс конфигурации получает значения соединения из файла свойств env, но не из файла user.prop, даже если этот класс аннотирован с помощью свойства source user путь user.property. Этот класс конфигурации принимает значение user.property, только если определенное поле не определено в файле свойств env. Короче говоря, он проверяет файл user.property, только если какое-либо поле / свойство не определено в файле env.property. Но я хочу, чтобы этот класс конфигурации всегда указывал на файл user.property. Я уже проверил приоритет весенней загрузки для сканирования файла свойств, но не смог разрешить. Может кто-нибудь помочь мне решить эту проблему.

1 Ответ

0 голосов
/ 09 апреля 2020

В соответствии с do c,

In cases where a given property key exists in more than one .properties file,
the last @PropertySource annotation processed will 'win' and override.

Я думаю, что лучшим подходом было бы использование профиля, если он соответствует вашему варианту использования. Ссылка здесь объясняет, как довольно аккуратно добавлять профили. Вы можете проверить это.

Другой подход, который я хотел бы предложить, если вы считаете, что добавление профиля не является правильным выбором, вы можете сделать его передаваемым как переменные окружения. Это дает вам возможность изменять его по мере необходимости, а также вы можете указать значение по умолчанию для переменных среды.

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