Spring middle
Spring Boot auto-configuration — как устроен?
Ответ
@EnableAutoConfiguration + @Conditional. Конфиги описаны в META- INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports (ранее — spring.factories).
Разбор: Auto-configuration строится на @EnableAutoConfiguration, который через SpringFactoriesLoader подтягивает список классов конфигурации (раньше из spring.factories, теперь из META-INF/spring/...AutoConfiguration.imports), и каждая конфигурация применяется условно через семейство @Conditional (@ConditionalOnClass, @ConditionalOnMissingBean и т.д.). Ловушка дистракторов: всё происходит в рантайме, а не на этапе компиляции, конфиги расширяемы сторонними стартерами, применение именно условное, а реальное свойство для отключения — spring.autoconfigure.exclude, а не выдуманное disabled.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.