Как запустить springboot приложение с локальными настройками (локальным профилем)
Иногда возникает необходимость использовать для запуска приложения или тестов локальные настройки. Чтобы не перезаписывать конфигурационные файлы application.properties или application.yml можно создать отдельный файл настроек и в коде указать их использование.
1. Создание файла настроек сводится к созданию в папке приложения или тестов resources файла с именем application-local.properties или application-local.yml. Файл можно просто скопировать с текущего и затем переименовать. После чего, можно заполнить новый файл настройками локального запуска.
2. Затем в коде нужно указать использование нового профиля. Варианта два. Указать на новый профиль в основном файле настроек или аннотировать класс.
2.1 Для использования локального профиля при запуске приложения:
В основном файле настроек подключаем локальный профиль
spring.profiles.active=local
Либо аннотируем класс помеченный как @SpringBootApplication аннотацией
@ActiveProfiles(“local”)
Но я бы рекомендовал первый вариант, т.к. изменять текст файла настроек более нормально чем исходный код приложения.
2.2. Для использования при запуске теста:
Аннотируем класс теста помеченного как @SpringBootTest аннотацией
@ActiveProfiles(“local”)
Также можно прописать в файле ресурса теста настройку
spring.profiles.active=local
Но рекомендуется первый вариант, т.к. в идеале в тестах должна использоваться конфигурация аналогичная конфигурации приложения.
Можно еще добавить команду для запуска приложения в VM Options:
-Dspring.profiles.active=prod
Или в idea включить использование профиля (есть в новых версиях). Run – Edit configurations