SpringBoot自动化配置原理
-
原理核心在启动类上的@SpringBootApplication注解。
其中包含以下三个主要注解:
-
@ComponentScan
作用:扫描启动类所在的包及其子包中的bean放入容器。
-
@SpringBootConfiguration
作用:该注解表示启动类是一个配置类。 -
@EnableAutoConfiguration
@EnableAutoConfiguration注解中包含@Import,@Import会将ImportSelector的实现类AutoConfigurationImportSelector中的selectImports方法返回的数组中对应的类封装的bean加载到IOC容器中。
其中数组内容的来源为getAutoConfigurationEntry方法的返回值
getAutoConfigurationEntry返回对象的主要内容为通过getCandidateConfigurations方法得到的configurations集合,其中getCandidateConfigurations方法
会到以下两个文件中查询需要自动配置的类
接着去起步依赖中查找这两个文件
其中Imports为新版本自动配置文件,factories为老版本文件,两个都有是为了兼容老版本
打开其中一个自动配置类
发现自动配置类中的类上添加了@AutoConfiguration,方法上添加了@Bean注解,这样这些方法的返回值就被加载到了IOC容器中,从而实现了SpringBoot的自动配置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!