springboot概念
什么是 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 注解导入旧配置文件(注解写在启动类)