Spring Boot学习笔记02——认识自动装配原理和run方法

项目创建完后,我们可以看到项目下有一个默认的application的类,其中让我们最眼生的便是@SpringBootApplication注解和run方法,在这里我们大概先讲一下这两个的原理
Spring Boot学习笔记02——认识自动装配原理和run方法

自动装配原理(@SpringBootApplication)

@SpringBootApplication的作用是标注这个类是一个spring boot应用,启动类下的所有资源以及导入资源

spring boot所有的自动配置都在启动时扫描并加载的,所有自动配置的类都保存在spring.factories中,这些自动配置的类中都有ConditionalOnXXX注解,该注解的作用是对其中的条件进行判断,如成立,只要导入了对应的start,spring boot就有了相应的启动器,即自动装配生效

我们可以进到 @SpringBootApplication中看源码,主要看这三个注解就好
Spring Boot学习笔记02——认识自动装配原理和run方法

  • @SpringBootConfiguration-@Configuration-@Component
  • @EnableAutoConfiguration:自动导入包
  • @ComponentScan:扫描当前主启动类同级的包
具体步骤
  1. spring boot启动时,从类路径下spring-boot-autoconfigure-2.3.2.RELEASE.jar/META-INF/spting.factories获取指定的类值
    Spring Boot学习笔记02——认识自动装配原理和run方法
  2. 进入对应类中,在ConditionalOnXXX进行判断,条件满足则进入下一步
    Spring Boot学习笔记02——认识自动装配原理和run方法
  3. 将这些自动配置的类导入容器(@Bean),自动配置生效,即帮我们自动配置
    Spring Boot学习笔记02——认识自动装配原理和run方法

主启动类的运行

run方法不是执行一个main方法,而是启动了一个服务(进程)

作用
  • 推断所启动的应用类型是普通项目还是web项目
  • 查找并加载所有可用初始化器,设置到initializers属性中
  • 找出所有的应用程序监听器,设置到listeners属性中
  • 推断并设置main方法的定义类,找到运行的主类
图示

Spring Boot学习笔记02——认识自动装配原理和run方法图片源自狂神说


该SpringBoot学习笔记学习自狂神前辈,是对知识点的整理和自我认识的梳理,如有不当之处,欢迎指出