01 Spring Boot自动装配核心源码剖析
1、SpringBoot的自动配置原理
自动配置流程图
1:从启动类入手
2:启动类中的@SpringBootApplication注解
3:这个注解下有一个@EnableAutoConfiguration注解,这个注解会启用自动配置,扫描所有的自动配置类,扫描到并且满足才会生效。
4:继续点进去看,有一个@Import注解,这个注解的实现类是AutoConfigrationImportSelector,这个类实现了DeferredImportSelector接口,
5:并且实现了getImportGroup方法,返回了一个实现了Group的类
6:然后会调用到process方法,此方法中调用了getAutoConfigrationEntry方法。
7:这个方法又调用了getCandidateConfigrations方法读取所有的配置类,
8:在getCandidateConfigrationgs方法中调用了loadFactoryNames方法,然后调用loadSpringFactories去获取索引jar包和类路径中的spring.factories文件。
9:不会要这个文件下面的所有的类,她会根据key为EnableAutoConfiguration.class对其中的value进行筛选,筛选出自己需要的类,然后自动装配。
怎么实现自定义的配置类自动装配
我们可以在resources目录下新建META-INF目录下新建一个spring.factories,将我们需要自定义装配的配置类路径写进去。