Spring Boot 自动配置原理详解一、概述Spring Boot 的自动配置(Auto-Configuration)是其最核心的特性之一,它能够根据 classpath 中的依赖自动配置 Spring 应用,大大减少了繁琐的配置工作。二、核心注解2.1 @EnableAutoConfiguration@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@AutoConfigurationPackage@Import(AutoConfigurationImportSelector.class)public@interfaceEnableAutoConfiguration{StringENABLED_OVERRIDE_PROPERTY="spring.boot.enableautoconfiguration";Class?[]exclude()default{};// 排除特定自动配置类String[]excludeName()default{};// 排除特定自动配置类名}2.2 @SpringBootApplication@SpringBootApplication是一个组合注解,包含了@EnableAutoConfiguration:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters={@Filter(type=FilterType.CUSTOM,classes=TypeExcludeFilter.class),@Filter(type=FilterType.CUSTOM,classes=AutoConfigurationExcludeFilter.class)})public@interfaceSpringBootApplication{@AliasFor(annotation=EnableAutoConfiguration.class)Class?[]exclude()default{};@AliasFor(annotation=EnableAutoConfiguration.class)String[]excludeName()default{};@AliasFor(annotation=ComponentScan.class,attribute="basePackages")String[]scanBasePackages()default{};@AliasFor(annotation=ComponentScan.class,attribute="basePackageClasses"