@azerphoenix

Почему Spring игнорирует кофигурации properties файлов профилей?

Здравствуйте!
Я раньше уже задавал этот вопрос, но к сожалению до сих пор не нашел ответа.
Старый вопрос - Как разобраться в профилях Spring?

Вкратце:
- Собрал проект из https://start.spring.io/ и импортировал в intellij idea.
- создал 2 доп. properties файла application-production.properties & application-development.properties. Оба файла лежат в resources на уровне с файлом application.properties
- В файл application.properties добавил:
spring.profiles.active=development
- В файл application-development.properties добавил:
server.port=7777
spring.mail.host=smtp.yandex.ru
spring.mail.username=mail@example.com
spring.mail.password=12345
spring.mail.port=465
spring.mail.protocol=smtps
mail.debug=true

- Создал обычный java файл для конфигурации почты и импортировал значения строк при помощи @Value.
Например,
@Value("${spring.mail.host}")
    private String host;

Запускаю приложение и получаем исключение:
Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.mail.host' in value "${spring.mail.host}"


Intellij "видит" значения из полей, так как автоматически подставляет их в @Value.
Только, если добавить конфиги в основной файл, то он сможет корректно запустить приложение.

"Включать" профили в intellij пробовал следующими способами:
1) строка в файле application.properties (см. выше)
2) ссылка change profiles отображаемая в Intellij IDEA (в классе TestApplication)
5c265e61c611f028574165.png
3) передача названия профиля в конфигурацию приложения
5c265e83b3689849737189.png

Заранее признателен за помощь!

P.S. Нашел следующие источники с аналогичными "проблемами".
https://stackoverflow.com/questions/32861600/how-t...
https://www.jetbrains.com/help/idea/spring-support.html

Конфигурация сделанная intellij по дефолту:
5c266ca7b59b4774407578.png
  • Вопрос задан
  • 93 просмотра
Решения вопроса 2
@ivorobioff
Software Engineer
Вам надо либо в команде указать "-Dspring.profiles.active=development" или так 5c266bf6abf81150638580.png

насчет того чтобы профайл задавать в application.properties не уверен
Ответ написан
Попробуйте использовать YAML и поместить все профили в одном файле, вот так:

# application.yml

spring.profiles.active: development

---

spring:
  profiles: development

server.port: 7777
spring.mail.host: smtp.yandex.ru
spring.mail.username: mail@example.com
spring.mail.password: 12345
spring.mail.port: 465
spring.mail.protocol: smtps
mail.debug: true
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
BostonGene Москва
от 100 000 до 200 000 руб.
Рекадро Ярославль
от 100 000 руб.
Digital Horizon Москва
от 150 000 руб.
22 янв. 2019, в 23:42
500 руб./за проект
22 янв. 2019, в 21:11
800 руб./в час
22 янв. 2019, в 20:53
6006 руб./за проект