1、SpringBoot自动配置的原理是什么?
SpringBoot启动的时候通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中所有的自动配置类,并对其进行加载,而这些自动配置类的类名都是以AutoConfiguration结尾来命名的,它实际上就是一个javaConfig形式的Spring容器配置类,它们都有一个@EnableConfigurationPerperties的注解,通过这个注解启动XXXProperties命名的类去加载全局配置中的属性,如server.port,而XXXProperties通过@ConfigurationProperties注解将全局配置文件中的属性与自己的属性进行绑定。
2、SpringBoot 配置加载顺序?
1、 properties文件 2、YAML文件 3、系统环境变量 4、命令行参数
3、spring boot初始化环境变量流程?
1、 调用prepareEnvironment
方法去设置环境变量
2、 接下来有三个方法getOrCreateEnvironment
,configureEnvironment
,environmentPrepared
3、 getOrCreateEnvironment
去初始化系统环境变量
4、 configureEnvironment
去初始化命令行参数
5、 environmentPrepared
当广播到来的时候调用onApplicationEnvironmentPreparedEvent
方法去使用postProcessEnvironment
方法load yml
和properties变量
4、运行 SpringBoot 有哪几种方式?
1、 打包用命令或者者放到容器中运行
2、 用 Maven/ Gradle 插件运行
3、 直接执行 main 方法运行
5、SpringBoot运行项目的几种方式?
打包用命令或者放到容器中运行
1、 打成jar包,使用java -jar xxx.jar运行
2、 打成war包,放到tomcat里面运行
直接用maven插件运行 maven spring-boot:run
直接执行main方法运行
6、SpringBoot 常用的 Starter 有哪些?
1、 spring-boot-starter-web :提供 Spring MVC + 内嵌的 Tomcat 。
2、 spring-boot-starter-data-jpa :提供 Spring JPA + Hibernate 。
3、 spring-boot-starter-data-Redis :提供 Redis 。
4、 mybatis-spring-boot-starter :提供 MyBatis 。