Ответ
Автоконфигурации Spring Boot определены в библиотеке spring-boot-autoconfigure и активируются через @EnableAutoConfiguration.
Механизм и расположение:
- Файлы конфигурации: Список классов автоконфигурации находится в
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.importsвнутри JAR-файлов. - Классы конфигурации: Это обычные
@Configurationклассы, часто помеченные@AutoConfigurationи использующие аннотации@ConditionalOn...для условного создания бинов.
Пример (упрощенный):
@AutoConfiguration
@ConditionalOnClass(DataSource.class) // Создает бин, только если класс DataSource в classpath
@EnableConfigurationProperties(DataSourceProperties.class)
public class DataSourceAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public DataSource dataSource(DataSourceProperties properties) {
return properties.initializeDataSourceBuilder().build();
}
}
Переопределение: Автоконфигурацию можно заменить, определив собственный бин того же типа в вашей конфигурации или настроив свойства в application.properties/application.yml.