Что важно знать
- Порядок источников: переменные окружения переопределяют файлы.
- Профили — разные настройки для окружений.
@ConfigurationPropertiesлучше россыпи@Value.- Секреты — из окружения или хранилища, не в репозитории.
ApplicationContext, профили, properties, @ConfigurationProperties.
@ConfigurationProperties лучше россыпи @Value.Практика. Вынести все настройки сервиса в application.yml с профилями dev и prod.
Практика. Описать настройки внешней интеграции классом @ConfigurationProperties с валидацией и тестом.
ApplicationContext — контейнер бинов: создаёт их, внедряет зависимости, управляет жизненным циклом и даёт инфраструктуру — события, свойства, профили, ресурсы.
Профили включают разные бины и свойства под окружение: @Profile("dev") на бине, application-prod.yml для свойств, активация через spring.profiles.active.
Singleton создаётся один раз, и prototype внедряется в него один раз — «застывает». Новый экземпляр при каждом использовании дают ObjectProvider<T>.getObject(), @Lookup-метод или…
Один экземпляр на контекст — не на всю JVM, как классический паттерн. Два контекста — два экземпляра; можно создать объект класса и вручную через new.
Spring Boot собирает свойства из многих источников — application.yml, профильных файлов, переменных окружения, аргументов командной строки — в единое Environment. Читают их через…
@ConfigurationProperties связывает целый префикс настроек с типизированным объектом: вложенные структуры, списки, Duration и DataSize, валидация при старте, подсказки в IDE…
События приложения и @EventListener, FactoryBean, Aware-интерфейсы, порядок бинов (@Order/@DependsOn) и отложенное получение (ObjectProvider/@Lazy/@Lookup).
BeanFactory против ApplicationContext, способы конфигурации, @Configuration full/lite, профили и Environment, @Conditional.
На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.