SpringBoot自动配置原理
- 通过
@SpringBootConfiguration
引入了@EnableAutoConfiguration
(负责启动自动配置功能) @EnableAutoConfiguration
引入了@Import
注解- Spring容器启动时:加载Ioc容器时会解析
@Import
注解 @Import
导入了一个deferredImportSelector,会使SpringBoot的自动配置类的顺序再最后,这样方便我们扩展和覆盖- 然后读取所有的
/META-INF/spring.factories
文件 - 过滤出所有AutoConfigurtionClass类型的类
- 最后通过
@ConditionXXX
排除无效的自动配置类
自己的话:
- 在主启动类上添加了
@SpringBootApplication
,这个注解组合了@EnableAutoConfiguration
- 在
@EnableAutoConfiguration
中又组合了@Import
注解,导入了AutoConfigurationImportSelector
类 - 实现了
selectImports
方法,这个方法经过层层调用最终会读取META-INF
目录下的spring.factories
文件 spring.factories
存储了大量的全类名路径,springboot会解析符合条件的即@ConditionalOnXXX
的注解,符合的会注入到容器中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)