01- 讲一讲SpringBoot自动装配的原理
1.在SpringBoot项目的启动引导类上都有一个注解@SpringBootApplication
这个注解是一个复合注解, 其中有三个注解构成 , 分别是
- @SpringBootConfiguration : 是@Configuration的派生注解 , 标注当前类是一个SpringBoot的配置类
- @ComponentScan : 开启组件扫描, 默认扫描的是当前启动引导了所在包以及子包
- @EnableAutoConfiguration : 开启自动配置(自动配置核心注解)
2.在@EnableAutoConfiguration注解的内容使用@Import注解导入了一个AutoConfigurationImportSelector.class的类
在AutoConfigurationImportSelector.class中的selectImports方法内通过一系列的方法调用, 最终需要加载类加载路径下META-INF下面的spring.factories配置文件
3.在META-INF/spring.factories配置文件中, 定义了很多的自动配置类的完全限定路径
这些配置类都会被加载
4.加载配置类之后, 会配置类或者配置方法上的@ConditionalOnXxxx条件化注解是否满足条件
如果满足条件就会从属性配置类中读取相关配置 , 执行配置类中的配置方法 , 完成自动配置
02- 讲一讲SpringBoot启动流程
springboot项目在启动的时候, 首先会执行启动引导类里面的SpringApplication.run(AdminApplication.class, args)方法
这个run方法主要做的事情可以分为三个部分 :
第一部分进行SpringApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器
第二部分实现了应用具体的启动方案,包括启动流程的监听模块、加载配置环境模块、及核心的创建上下文环境模块
第三部分是自动化配置模块,该模块作为springboot自动配置核心,在后面的分析中会详细讨论
03- 你们常用的SpringBoot起步依赖有哪些
04- springBoot支持的配置文件有哪些 ? 加载顺序是什么样的
1 properties文件2 YAML文件 3 系统环境变量 4 命令行参数
如果有相同的配置参数, 后加载的会覆盖先加载的
05- 运行一个SpringBoot项目有哪些方式
- 直接使用jar -jar 运行
- 开发过程中运行main方法
- 可以配置插件 , 将springboot项目打war包, 部署到Tomcat中运行
- 直接用maven插件运行 maven spring-boot:run