Spring自动配置原理
Spring Boot 自动配置(Auto-configuration) 是其"约定大于配置"理念的核心实现。它能根据类路径依赖、环境变量、配置文件等上下文,自动推断并注册所需的 Bean,无需开发者手动编写 XML 或 Java Config。
1.启动入口
SpringBoot项目中有一个@SpringBootApplication组合注解,其中包含一个@EnableAutoConfiguration注解
2.加载候选配置类
SpringBootFactoriesLoader读取所有MATE-INF/spring.factories文件中所配置的类的全类名。
3.条件过滤
使用@Conditonal系列注解动态筛选符合条件的配置类,(如类路径存在、Bean不存在、配置属性匹配等)
4.顺序调整
通过@AutoConfigurationOrder、@AutoConfigureBefore等注解调整配置类加载顺序
5.配置生效
符合条件的配置类被加载到Spring容器中,自动注册Bean或执行初始化逻辑。
6.用户覆盖
用户自定义的Bean或1配置属性会覆盖自动配置的默认值。
为什么不一次性全部加载
全部加载到Spring容器会占用大量的内存,所以Spring提供了条件注解来控制某一个配置是否生效。
浙公网安备 33010602011771号