什么是 Spring Boot?
- springboot是Spring开源框架下的子项目,是Spring的一站式解决方案,
- 简化了spring的使用难度,遵循“约定优于配置”的原则,降低了对配置文件的要求,
- 使得开发人员能够更容易得上手。
Spring Boot 自动配置的原理?
-
SpringBoot 启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration
-
@EnableAutoConfiguration的作用是利用AutoConfigurationImportSelector给容器中导入一些组件。
-
扫描所有jar包类路径下"META-INF/spring.factories";
-
把扫描到的这些文件包装成Properties对象。
-
从properties中获取到EnableAutoConfiguration.class类名对应的值,然后把他们添加在容器中。
Spring Boot 读取配置文件的方式?
-
@Value("${xxx}")
-
Enviroment.getProperty(“xxx”)
-
@ConfigurationProperties(prefix=“xxx”)
为什么要用 Spring Boot?
- 简化了Spring配置文件
- 没有代码和XML文件的生成
- 内置TomCat
- 能够独立运行
- 简化监控
Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
-
SpringBoot的核心配置文件有application和bootstarp配置文件。
-
application文件主要用于Springboot自动化配置文件。
-
bootstarp文件主要有以下几种用途:
1.使用Spring Cloud Config注册中心时 需要在bootStarp配置文件中添加链接到配置中心的配置属性来加
2.载外部配置中心的配置信息。
3.一些固定的不能被覆盖的属性
4.一些加密/解密的场景
Spring Boot 的配置文件有哪几种格式?它们有什么区别?
-
.properties 和 .yml
-
.yml采取的是缩进的格式 不支持@PeopertySource注解导入配置
Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
- @SpringBootApplication
@EnableAutoConfiguration
@SpringBootApplication
@ComponentScan
开启 Spring Boot 特性有哪几种方式?
- 继承spring-boot-starter-parent项目
- 导入spring-boot-dependencies项目依赖
Spring Boot 需要独立的容器运行吗?
- 内置了Tomcat/Jetty等容器。
- 使用外部tomcat容器需要先移除内部tomcat容器
运行 Spring Boot 有哪几种方式?
-
运行Application这个类的main方法
-
通过命令行 java -jar xxx.jar
-
在SpringBoot的应用的根目录下运行mvn spring-boot:run
你如何理解 Spring Boot 中的 Starters?
- Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,可以一站式集成Spring及其他技术.
- Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。
如何在 Spring Boot 启动的时候运行一些特定的代码?
-
实现CommandLineRunner接口
-
实现ApplicationRunner接口
Spring Boot 实现热部署有哪几种方式?
-
使用调试模式Debug实现热部署
-
Spring Loaded:与Debug模式类似,不依赖于Debug模式启动,通过Spring Loaded库文件启动,即可在正常模式下进行实时热部署
-
JRebel
-
Spring Boot Devtools(推荐):默认关闭了模版缓存
-
模板引擎
Spring Boot 多套不同环境如何配置?
pom.xml
properties
application.properties
运行前在Maven中勾选需要加载的配置文件
Spring Boot 可以兼容老 Spring 项目吗,如何做?
- @ImportResource 注解导入旧配置文件(注解写在启动类)