Spring Boot启动原理:
1、运行main方法,启动SpringApplication实例,
2、运行run方法,创建内置的tomcat容器
3、SpringBoot会读取环境变量和配置文件,比如application.yml文件,获取程序配置信息之后创建ApplicationContext,即Spring上下文
4、初始化Spring上下文,Spring Boot会将启动类作为配置类,并将配置类读取并注册未Beandefinition
5、调用refresh,初始化Spring容器,解析@Import注解,
6、最后创建内置的servlet容器。
(此过程中会调用很多的监听器和扩展应用)
Spring Boot自动配置原理:
1、通过@SpringBootConfiguration注解,引入@BeanAutoConfiguration注解
2、通过@BeanAutoConfiguration注解引入@Import注解
3、通过@Import注解调用deferredImportSelector类,会使SpringBoot的自动配置类顺序在最后,方便扩展和覆盖
4、然后读取/MATA-INF/spring.factories文件,过滤出所有的AutoConfigurationClass类型的类
5、最后通过@ConditionalOn**系列注解排除无效的自动配置类。
5万+

被折叠的 条评论
为什么被折叠?



