SpringBoot项目启动过程分析
一、启动入口类会发生什么
找到项目的入口类找到项目的入口类(使用了@SpringBootApplication 注解描述),然后运行启动类, 检测启动过程,Spring Boot 在启动时,控制台会出现如图标识:
@SpringBootApplication 注解描述的类为项目的启动类
此类在启动时会发生以下两个点:
1.自动初始化对象
2.基于自动配置扫描主启动类所在的包以及他的子包中的类,并基于类上的描述对其对象进行管理
二、项目启动时发生了什么
SpringBoot在项目启动时,会先基于启动类上面的注解描述,进行自动配置及扫描指定包以及子包中的类进行加载,然后检查类上是否有Spring框架中的指定注解描述,如有,则会把类交予Spring框架中的BeanFactory工厂接口的实现类对象,此工厂对象会基于反射创建Bean实列,加入Bean指定了生命周期方法,还会调用生命周期方法,当实列创建后,Spring框架还会基于类的作用域描述,将实列存储到不同作用域的容器中。以实现Bean对象的科学管理
三、注解描述
- @Component
是Spring中用来描述Bean类的一个注解,用来告诉Spring,这个类的实列由Spring来创建,当此对象由Spring创建和管理时,默认会将对象存储到池中 - @SpringBootTest
用于告诉Spring框架,此测试类交给Spring管理 - @Autowired
此注解描述属性时,用于告诉Spring框架要为此属性注入一个值