Параметры конфигурации

Тема дорожной карты · Spring Boot

Привязка параметров конфигурации — это механизм, который Spring Boot использует для сопоставления ключей из application.properties, application.yml, переменных окружения и других записей PropertySource с Java-объектами при запуске приложения. Процесс привязки выполняется API Binder Spring Boot, который поддерживает гибкие правила сопоставления: например, spring.datasource.url, SPRING_DATASOURCE_URL и spring.datasource-url привязываются к одному и тому же полю. В сочетании с @ConfigurationProperties привязка параметров конфигурации заполняет целые графы объектов, включая вложенные классы, списки и словари, обеспечивая богатую, типобезопасную альтернативу отдельным выражениям @Value. Разработчики активируют привязку, аннотируя класс @ConfigurationProperties(prefix = "...") и регистрируя его через @EnableConfigurationProperties или @Component, после чего инфраструктура авто-конфигурации Spring Boot берёт на себя остальное. Для исчерпывающего справочника по всем встроенным целям привязки официальное приложение Spring Boot документирует каждый ключ spring.* и класс авто-конфигурации, который его использует.

Как это работает

Параметры конфигурации: Spring грузит application.properties или application.yml из src/main/resources + classpath. Profiles (@Profile("prod"), application-prod.yml) активируют environment-specific config. @ConfigurationProperties связывает property-prefixes с типизированными POJO (с валидацией). Environment variables перебивают файлы. Внешняя конфигурация (volume-mounted файл, Spring Cloud Config server, Kubernetes ConfigMap/Secrets) перебивает bundled-defaults. Precedence строгая — знайте порядок.

Когда применять

YAML для human-readable иерархического config; properties для плоских key=value. Всегда @ConfigurationProperties вместо разбросанных @Value — даёт валидацию, IDE-поддержку, refactor safety. Инжектьте секреты через env vars или secrets manager — не коммитьте. Profiles для environment-различий; один profile на env (dev, stage, prod).

Типичные ошибки

Ловушки Параметры конфигурации: коммит application-prod.yml с реальными секретами (Vault, Spring Cloud Config или env vars); не валидируют config (@Validated на @ConfigurationProperties ловит плохой config на startup, не в prod); много profiles активны с конфликтами; смешение @Value + @ConfigurationProperties для того же ключа.

Связанные понятия

Полезные ресурсы