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的注解,符合的会注入到容器中
posted @ 2023-12-27 10:22  自学Java笔记本  阅读(25)  评论(0)    收藏  举报