application.properties / yml
Тема дорожной карты · Spring Boot
application.properties и application.yml — это ключевые файлы конфигурации в Spring Boot, которые автоматически загружаются из classpath при запуске процессом инициализации SpringApplication. Эти файлы позволяют разработчикам удобно хранить и управлять различными параметрами конфигурации, что в свою очередь обеспечивает гибкость и удобство в настройке приложений. Управление конфигурацией является одним из ключевых аспектов успешной разработки и эксплуатации приложений на платформе Spring Boot.
Как это работает
Spring Boot загружает application.properties или application.yml из src/main/resources и classpath. Файлы конфигурации могут быть организованы по профилям, что позволяет использовать environment-specific конфигурацию для различных сред (например, разработка, тестирование, продакшн). Команды @Profile("prod") и файлы application-prod.yml активируют специфические для окружения конфигурации. @ConfigurationProperties связывает префиксы свойств с типизированными POJO, обеспечивая валидацию и поддержку от IDE. Переменные окружения могут перебить значения из файлов конфигурации, что позволяет использовать внешние источники конфигурации, такие как volume-mounted файлы, серверы Spring Cloud Config или Kubernetes ConfigMaps/Secrets. При этом порядок приоритета строго определен: значения из application.properties имеют приоритет перед application.yml, а переменные окружения перебивают значения из файлов.
Когда применять
YAML-файлы удобны для создания читаемых и иерархических конфигураций, тогда как application.properties подходят для плоских конфигураций в формате key=value. Всегда используйте @ConfigurationProperties вместо разбросанных @Value, чтобы получить преимущества валидации, поддержки IDE и безопасности рефакторинга. Инжектируйте секреты через переменные окружения или менеджеры секретов, чтобы избежать коммита реальных секретов в репозиторий. Профили позволяют создавать различные окружения (например, dev, stage, prod) с помощью одного файла конфигурации.
Типичные ошибки
Типичные ошибки при использовании application.properties и application.yml включают коммит реальных секретов в файл application-prod.yml, что может привести к утечке конфиденциальной информации. Не выполнение валидации конфигурации (@Validated на @ConfigurationProperties) может привести к неправильной настройке приложения на этапе старта. Активация нескольких профилей с конфликтующими параметрами может вызвать непредсказуемое поведение приложения. Смешивание @Value и @ConfigurationProperties для одного ключа может привести к непредсказуемому поведению и затруднить отладку.