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
springboot概念
springboot概念
properties
springboot概念
application.properties
springboot概念
运行前在Maven中勾选需要加载的配置文件
springboot概念

Spring Boot 可以兼容老 Spring 项目吗,如何做?

@ImportResource 注解导入旧配置文件(注解写在启动类)