Spring Boot学习笔记02——认识自动装配原理和run方法
项目创建完后,我们可以看到项目下有一个默认的application的类,其中让我们最眼生的便是@SpringBootApplication
注解和run
方法,在这里我们大概先讲一下这两个的原理
自动装配原理(@SpringBootApplication)
@SpringBootApplication
的作用是标注这个类是一个spring boot应用,启动类下的所有资源以及导入资源
spring boot所有的自动配置都在启动时扫描并加载的,所有自动配置的类都保存在spring.factories中,这些自动配置的类中都有
ConditionalOnXXX
注解,该注解的作用是对其中的条件进行判断,如成立,只要导入了对应的start,spring boot就有了相应的启动器,即自动装配生效
我们可以进到 @SpringBootApplication
中看源码,主要看这三个注解就好
-
@SpringBootConfiguration
-@Configuration
-@Component
-
@EnableAutoConfiguration
:自动导入包 -
@ComponentScan
:扫描当前主启动类同级的包
具体步骤
- spring boot启动时,从类路径下spring-boot-autoconfigure-2.3.2.RELEASE.jar/META-INF/spting.factories获取指定的类值
- 进入对应类中,在
ConditionalOnXXX
进行判断,条件满足则进入下一步 - 将这些自动配置的类导入容器(
@Bean
),自动配置生效,即帮我们自动配置
主启动类的运行
run方法不是执行一个main方法,而是启动了一个服务(进程)
作用
- 推断所启动的应用类型是普通项目还是web项目
- 查找并加载所有可用初始化器,设置到
initializers
属性中 - 找出所有的应用程序监听器,设置到
listeners
属性中 - 推断并设置
main
方法的定义类,找到运行的主类
图示
图片源自狂神说
该SpringBoot学习笔记学习自狂神前辈,是对知识点的整理和自我认识的梳理,如有不当之处,欢迎指出