Короткий ответ
Профили (Profiles) — механизм Spring, позволяющий поддерживать разные конфигурации приложения для разных окружений: разработки (dev), тестирования (test) и продакшена (prod). Бин или класс конфигурации, помеченный @Profile, загружается только тогда, когда соответствующий профиль активирован.
Как это работает подробнее
Профили разделяют окружение-специфичные настройки: URL базы данных, уровень логирования, параметры интеграций. Это избавляет от ручного изменения конфигурации при переходе между окружениями и помогает защитить продакшен-настройки. Для отдельных профилей создаются файлы вида application-{profile}.properties или application-{profile}.yml, которые переопределяют общие настройки.
- Способы активации профиля: свойство
spring.profiles.active=prodвapplication.properties, аргумент командной строки--spring.profiles.active=prodили переменная окруженияSPRING_PROFILES_ACTIVE. - Основной файл конфигурации Spring Boot —
application.properties: порт сервера (server.port), подключение к базе данных, логирование, пользовательские свойства. - Формат YAML: вместо properties можно использовать
application.yml, который поддерживает иерархическую структуру настроек.
Пример кода
application.yml
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/dbЧто использовать на практике
- Делите конфигурацию по профилям dev, test, prod и задавайте активный профиль через переменную окружения или аргумент запуска.
- Общие настройки храните в
application.yml, а специфичные для окружения — в файлахapplication-{profile}.yml.