面试题—spring boot

本文参考:《紧急整理了 20 道 Spring Boot 面试题,我经常拿来面试别人!

百度云:https://pan.baidu.com/s/17u1J-SOYYpbO-HMoMKJOLg
提取码:cd75

1.什么是spring boot

Spring boot是spring开源组织下的一个子项目,是整个spring技术栈的一个大整合,简化了spring应用开发,省去了xml配置,开发者能快速上手。

2.spring boot优点

在这里插入图片描述

3.Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

Spring Boot 的核心配置文件是 bootstrap 和 application 配置文件。
bootstrap 配置文件:可添加额外的配置属性。boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载,boostrap 里面的属性不能被覆盖。
application 配置文件主要用于 Spring Boot 项目的自动化配置,可用来修改默认配置。

4.Spring Boot 的配置文件有哪几种格式?它们有什么区别?

.properties 和 .yml,它们的区别主要是书写格式不同。
1).properties
在这里插入图片描述
2).yml
在这里插入图片描述

另外,.yml 格式不支持 @PropertySource 注解导入配置。

5.如何导入配置文件

@PropertySource&@ImportResource&@Bean
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.Spring Boot 的核心注解

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解。主要组合包含了以下 3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,可以帮助 SpringBoot 应用将所有符合条件的 @Configuration 配置都加载到当前 IoC 容器之中,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:
在这里插入图片描述
底层原理:
在这里插入图片描述
@ComponentScan:Spring组件扫描。
在这里插入图片描述
在这里插入图片描述
参照:https://www.jianshu.com/p/9dc7a385d19e

7、如何启用Spring Boot 特性

继承spring-boot-starter-parent项目。
在这里插入图片描述
这个项目又继承了spring‐boot‐dependencies项目,该项目管理springboot的所有依赖版本。

8、Spring Boot 需要独立的容器运行吗?

可以不需要,内置了 Tomcat/ Jetty 等容器。

9、运行 Spring Boot 有哪几种方式?

spring-boot的启动方式主要有三种:

  • 运行带有main方法类
  • 通过命令行 java -jar 的方式
  • 通过spring-boot-maven-plugin的方式

spring-boot的三种启动方式

10、Spring Boot 自动配置原理是什么?

Spring Boot启动的时候会通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中的所有自动配置类,并对其进行加载,而这些自动配置类都是以AutoConfiguration结尾来命名的,它实际上就是一个@configuration标注的Spring容器配置类,通过这个类与全局配置文件中对应的属性进行绑定的。
Spring Boot自动配置原理、实战
Spring Boot面试杀手锏————自动配置原理

11、Springboot读取配置文件的几种方式

在这里插入图片描述
Spring Boot读取配置的几种方式

12、你如何理解 Spring Boot 中的 Starters?

Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其他技术,而不需要到处找示例代码和依赖包。如你想创建web项目,只要加入 spring-boot-starter-web 启动器依赖就能使用了。

13、如何在 Spring Boot 启动的时候运行一些特定的代码?

可以实现接口 ApplicationRunner 或者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个 run 方法。
参照:https://blog.csdn.net/zl1zl2zl3/article/details/83715818

14、Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?

Spring Boot 支持 Java Util Logging, Log4j2, Logback 作为日志框架.。

Spring Boot 默认选用SLF4J(日志门面,即抽象层)和logback(日志实现)。

Spring 默认的是JCL(commons-logging)日志门面。它内部会有自己的算法去找日志门面的实现类,比如log4j,如果说没有引入其他日志依赖,它默认就会去找JDK自带的java.util.logging简称jul作为其日志实现类。

常见日志框架:

日志面面日志实现
JCL(Jakarta commons-logging)、SLF4J、jboss-loggingJUL(java.util.logging)、Log4j、log4j2、logback

15、SpringBoot 实现热部署有哪几种方式?

主要有两种方式:

前两种参考《Spring Boot 热部署三种方式
最后一种Spring-boot-devtools方式参考《Spring Boot实现热部署

在这里插入图片描述

16.你如何理解 Spring Boot 配置加载顺序?

优先级从高到低;
高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。

17、Spring Boot 如何定义多套不同环境配置?

applcation.properties
 
application-dev.properties
 
application-test.properties
 
application-prod.properties

然后在applcation.properties文件中指定当前的环境spring.profiles.active=test,这时候读取的就是application-test.properties文件。
Spring Boot Profile 不同环境配置
在这里插入图片描述

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

可以兼容,使用 @ImportResource 注解导入老 Spring 项目配置文件。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值