Вопрос проверяет понимание механизма профилей в Spring и умение управлять конфигурацией под разные окружения.
Spring Profiles позволяют включать и отключать части конфигурации.
Активный профиль определяет, какие бины и настройки будут загружены.
Профили выбираются при запуске приложения.
Это удобно для разделения dev, test и prod окружений.
В реальных проектах одно и то же приложение запускается в разных окружениях, и конфигурация для них отличается.
Spring Profile — это логический флаг, который определяет, какие конфигурации и бины активны.
Профиль может соответствовать:
Окружению (dev, test, prod)
Типу запуска (local, cloud)
Особому режиму работы
Активный профиль задается:
Через параметр JVM
-Dspring.profiles.active=prod
Через переменную окружения
SPRING_PROFILES_ACTIVE=prod
В application.yml как default
Spring загружает:
Общую конфигурацию
Затем конфигурацию активного профиля
Если профиль не активен, соответствующие бины не создаются.
Профили применяются через аннотацию:
@Profile("dev")
@Service
public class DevMailService { }
Profiles — это стандартный механизм Spring для разделения конфигурации.
Они позволяют безопасно и удобно управлять настройками под разные окружения.