Здравствуйте!
Я раньше уже задавал этот вопрос, но к сожалению до сих пор не нашел ответа.
Старый вопрос -
Как разобраться в профилях 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)
3) передача названия профиля в конфигурацию приложения
Заранее признателен за помощь!
P.S. Нашел следующие источники с аналогичными "проблемами".
https://stackoverflow.com/questions/32861600/how-t...
https://www.jetbrains.com/help/idea/spring-support.html
Конфигурация сделанная intellij по дефолту: