本文主要是介绍Spring Boot相关面试题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
什么是SpringBoot
- Spring Boot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
-
如何统一引入SpringBoot版本
- 继承
spring-boot-starter-parent
项目
-
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
</parent>
- 导入spring-boot-dependencies项目依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>
-
SpringBoot优点
- 独立运行。
- 简化配置。
- 自动配置。
- 无代码生成和xml配置。
- 应用监控
-
SpringBoot的核心配置文件
- Spring Boot的核心配置文件是 application 和 bootstrap 配置文件。
- application:主要用于 Spring Boot 项目的自动化配置。
- bootstrap: Spring Cloud 新增的启动配置文件,需要引入
spring-cloud-context
依赖后,才会进行加载。
- Spring Boot的配置文件格式。
- .properties:user.name=admin
- .yml:(.yml 格式不支持 @PropertySource 注解导入配置。)
user:
name: admin
- Spring Boot同时存在properties和yml的时,那个优先级高?
- properties文件的优先级要高于yml。
-
SpringBoot的核心注解
- 启动上的注解是@SpringBootApplication,是SpringBoot的核心注解。包含了以下注解:
- @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
- @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
- @ComponentScan:Spring组件扫描。
-
-
SpringBoot的自动配置
- Springboot启动的时候,寻找依赖的包,然后找到META-INF/spring.factories文件中包含的jar包。
- 根据spring.factories配置加载AutoConfigure 类。
- 根据
@Conditional
等条件注解 的条件,进行自动配置并将 Bean 注入 Spring IoC 中。
-
SpringBoot读取配置文件的方式
- 使用@Value注解。
@Value("${user.name}")
private String name;
- 使用@ConfigurationProperties注解,(注解在类上)
@ConfigurationProperties(prefix="user")
public class User {
private String name;
private String sex;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
}
-
SpringBoot的热部署
- Spring-boot-devtools。
- Spring Loaded 插件,Spring Boot 2.X 后,官方宣布不再支持 Spring Loaded 插件 的更新
- JRebel 插件,需要付费。
-
SpringBoot容器
- 内置tomcat和jetty容器。
- 默认是tomcat。
- 切换容器为jetty
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion> <!-- 去除 Tomcat -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency> <!-- 引入 Jetty -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
-
SpringBoot支持的日志框架
- Logback(默认)
- Log4j2
- Log4j
- Java Util Logging
这篇关于Spring Boot相关面试题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!