SpringBoot

SpringBoot的运行过程?

通过注解加载一些配置,然后交给SpringApplication.run()启动

SpringApplication.run()做了两件事:new了一个SpringApplication实例,将启动类信息传过去;

调用SpringApplication实例的run方法。

@SpringBootApplication整合了三个注解:

1.@ComponentScan指定扫描路径,默认扫描当前类的包及子包下的所有路径

2.@SpringBootConfiguration->Configuration:java配置类

3.@EnableAutoConfiguration开启自动配置: 借助@Import的支持 ,收集和注册特定场景相关的bean定, 可以将所有符合条件的@Configuration配置都加载到IoC容器 。

1、SpringBoot启动的时候,会构造一个SpringApplication的实例,然后调用这个实例的run方法,在run方法调用之前,也就是构造SpringApplication的时候会进行初始化的工作,初始化的时候会做以下几件事:

判断是否是web程序;找到ApplicationContextInitializer的所有类并初始化;找到ApplicationListener的所有类并初始化;初始化主类mainApplicatioClass。

2、SpringApplication,启动run方法执行的时候会做以下几件事:

(1)构造一个StopWatch计时器,观察SpringApplication的执行 。
(2)获取SpringApplicationRunListeners并封装到SpringApplicationRunListeners中启动,用于监听run方法的执行。
(3)创建并初始化ConfigurableEnvironment(环境配置)。
(4)构造ApplicationContext上下文。

(5)refreshContext 刷新上下文(IOC容器的初始化)

(6)StopWatch计时器停止计时。

posted @ 2021-08-24 18:16  wlbsm  阅读(24)  评论(0编辑  收藏  举报