springboot-004-主程序类

@SpringBootApplication

点进这个注解看

 进去第一个注解@SpringBootConfiguration看,上面有Configuration注解

 @Configuration 这是Spring的配置类注解, 说明这个类一个配置类,里面都是配置文件

进第二个注解@EnableAutoConfiguration, 顾名思义,这是允许自动配置生效的注解, 接下来进去看它。

@EnableAutoConfiguration

 进去后也有两个注解:第一个AutoConfigurationPackage,进去看

里面有这个注解,@Import({Registrar.class})  @Import是spring的底层注解,作用是给Spring导入一个Registrar组件
进去看Registrar,

 将主配置类所在的包以及以下的包里的所有组件,扫描到Spring容器中。

第二个@Import({AutoConfigurationImportSelector.class})
进AutoConfigurationImportSelector里看,

 

这个configurations数组是我们需要导入的组件。看看configurations有什么, 

实际上是将所有需要导入的组件以类全名的方式返回,这些组件会导入到容器中

 能看到是从META-INF/spring.factories里获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们完成自动配置工作:

 

 看看spring.factories里有什么,有非常多的自动配置类 XXXAutoCOnfiguration(这里就不进去看了), @Import({AutoConfigurationImportSelector.class})就是给容器中导入这个场景需要的所有组件并且配置好

 注意spring-boot-autoconfigure.jar包。这里面有所有自动配置的组件

 



猜你喜欢

转载自www.cnblogs.com/dayanjing/p/12634754.html
今日推荐