@SpringBootApplication自动配置原理
@EnableAutoConfiguration 是核心,他会调用一个@Import注解。我们已知Import自动配置得实现是通过创建ImportSelector
接口的实现类并重写里面selectImports方法在里面返回一个字符串数组最后通过@Import注解调用实现类.class的方法实现自动配置。而@EnableAutoConfiguration会创建一个名为
AutoConfigurationImportSelector的实现类并重写里面的selectImports方法,然后接下来就要想办法拿到封装了需要注入容器的类的全限定名称,而在selectImports方法内最终会去调用SpringFactoriesLoader.loadFactoryNames去扫描去扫描 META-INF/spring.factories 文件中名称为EnableAutoConfiguation对应的字符串列表,还有会扫描 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件中所有信息,加载进内存封装成一个数组,最后会根据各种条件【起步依赖、@Conditional相关注解】进行过滤找到匹配条件的全类名,并封装成字符串数组到内存中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!