SpringBoot自动配置原理-通俗易懂
自动配置原理
1.主程序的 @SpringBootApplication进入,这个注解包含了一个重要的注解 @EnableAutoConfiguration。
2.@EnableAutoConfiguration包含了一个 @Import注解,并且会加载AutoConfigurationImportSelector类。
3.其中的selectImports()方法通过SpringFactoriesLoader.loadFactoryNames()扫描资源下的META-INF文件夹spring.factories文件,这个文件包含了所有需要配置的类全路径名,所以所有的配置类就会被加载。
4.配置类中主要包含了 @Configuration注解,还有相关起作用条件注解比如 @ConditionalOnWebApplication 是让其在web会起作用。@EnableConfigurationProperties(xxxProperties.class) ,开启配置属性,就会去加载定义好的配置文件类,在配置类里面就去注册相关bean了,与我们平常写的配置类一样。
5.在这个配置文件类上就有一个非常熟悉的 @ConfigurationProperties注解,比如下面的是我自定义的配置文件类,以wangshili前缀,那我们在配置文件中就是可以配置wangshili.属性名进行配置,会去找application.yml配置文件中的配置进行注入。