20道spring boot面试题
面试了少量人,简历上都说自己熟习 Spring Boot, 或者者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望。
下面,我给大家总结下有哪些 Spring Boot 的面试题,这是我经常拿来问面试者的,希望对你有帮助。
目录
1、什么是 Spring Boot?
2、为什么要用 Spring Boot?
3、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
4、Spring Boot 的配置文件有哪几种格式?它们有什么区别?
5、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
6、开启 Spring Boot 特性有哪几种方式?
7、Spring Boot 需要独立的容器运行吗?
8、运行 Spring Boot 有哪几种方式?
9、Spring Boot 自动配置原理是什么?
10、Spring Boot 的目录结构是怎么的?
11、你如何了解 Spring Boot 中的 Starters?
12、如何在 Spring Boot 启动的时候运行少量特定的代码?
13、Spring Boot 有哪几种读取配置的方式?
14、Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
15、SpringBoot 实现热部署有哪几种方式?
16、你如何了解 Spring Boot 配置加载顺序?
17、Spring Boot 如何定义多套不同环境配置?
18、Spring Boot 可以兼容老 Spring 项目吗,如何做?
19、保护 Spring Boot 应用有哪些方法?
20、Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?
1、什么是 Spring Boot?
Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式处理方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
2、为什么要用 Spring Boot?
Spring Boot 优点非常多,如:
独立运行
简化配置
自动配置
无代码生成和XML配置
应用监控
上手容易
…
Spring Boot 集这么多优点于一身,还有理由不使用它呢?
3、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。
application 配置文件这个容易了解,主要用于 Spring Boot 项目的自动化配置。
bootstrap 配置文件有以下几个应用场景。
使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中增加连接到配置中心的配置属性来加载外部配置中心的配置信息;
少量固定的不能被覆盖的属性;
少量加密/解密的场景;
4、Spring Boot 的配置文件有哪几种格式?它们有什么区别?
.properties 和 .yml,它们的区别主要是书写格式不同。
1).properties
2).yml
另外,.yml 格式不支持@PropertySource注解导入配置。
5、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
@ComponentScan:Spring组件扫描。
6、开启 Spring Boot 特性有哪几种方式?
1)继承spring-boot-starter-parent项目
2)导入spring-boot-dependencies项目依赖
7、Spring Boot 需要独立的容器运行吗?
可以不需要,内置了 Tomcat/ Jetty 等容器。
8、运行 Spring Boot 有哪几种方式?
1)打包用命令或者者放到容器中运行
2)用 Maven/ Gradle 插件运行
3)直接执行 main 方法运行
9、Spring Boot 自动配置原理是什么?
注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心,首先它得是一个配置文件,其次根据类路径下能否有这个类去自动配置。
10、Spring Boot 的目录结构是怎么的?
这个目录结构是主流及推荐的做法,而在主入口类上加上 @SpringBootApplication 注解来开启 Spring Boot 的各项能力,如自动配置、组件扫描等。
11、你如何了解 Spring Boot 中的 Starters?
Starters可以了解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其余技术,而不需要四处找示例代码和依赖包。如你想使用 Spring JPA 访问数据库,只需加入 spring-boot-starter-data-jpa 启动器依赖就能使用了。
Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。
12、如何在 Spring Boot 启动的时候运行少量特定的代码?
可以实现接口 ApplicationRunner 或者者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个 run 方法,
13、Spring Boot 有哪几种读取配置的方式?
Spring Boot 可以通过 @PropertySource,@Value,@Environment, @ConfigurationProperties 来绑定变量,
14、Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作为日志框架,假如你使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架,
15、SpringBoot 实现热部署有哪几种方式?
主要有两种方式:
Spring Loaded
Spring-boot-devtools
Spring-boot-devtools?
16、你如何了解 Spring Boot 配置加载顺序?
在 Spring Boot 里面,可以使用以下几种方式来加载配置。
1)properties文件;
2)YAML文件;
3)系统环境变量;
4)命令行参数;
等等……
17、Spring Boot 如何定义多套不同环境配置?
提供多套配置文件,如:
运行时指定具体的配置文件
18、Spring Boot 可以兼容老 Spring 项目吗,如何做?
可以兼容,使用@ImportResource注解导入老 Spring 项目配置文件。
19、保护 Spring Boot 应用有哪些方法?
在生产中使用HTTPS
使用Snyk检查你的依赖关系
更新到最新版本
启用CSRF保护
使用内容安全策略防止XSS攻击
…
20、Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?
配置变更
JDK 版本更新
第三方类库更新
响应式 Spring 编程支持
HTTP/2 支持
配置属性绑定
更多改进与增强…
终于写完了,希望大家好好学习下再去面试,不然再被面试官问这些问题,又答不上来就尴尬了。弄懂了这些问题,对你了解 Spring Boot 也有非常大的帮助,
这 20 道面试题就算第一季吧,后面会整理更多季 Spring Boot/Cloud 相关的面试题。
20道spring boot面试题的更多相关文章
- 吐血整理 20 道 Spring Boot 面试题,我经常拿来面试别人!
面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望. 下面,我给大家总结 ...
- 【转】20道Spring Boot面试题
面试了少量人,简历上都说自己熟习 Spring Boot, 或者者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望. 下面,我给大家总 ...
- 紧急整理了 20 道 Spring Boot 面试题,我经常拿来面试别人!
面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望. 下面,我给大家总结 ...
- 20 道 Spring Boot 面试题
转自:微信公众号:Java技术栈(id: javastack) 面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段 ...
- 松哥整理了 15 道 Spring Boot 高频面试题,看完当面霸
什么是面霸?就是在面试中,神挡杀神佛挡杀佛,见招拆招,面到面试官自惭形秽自叹不如!松哥希望本文能成为你面霸路上的垫脚石! 做 Java 开发,没有人敢小觑 Spring Boot 的重要性,现在出去面 ...
- 15 道 Spring Boot 高频面试题,看完直接当面霸【入门实用】
前言 本文转自松哥(网名:江南一点雨)的一篇实用入门文章,写的挺好的,希望对各位有所帮助. 什么是面霸?就是在面试中,神挡杀神佛挡杀佛,见招拆招,面到面试官自惭形秽自叹不如!松哥希望本文能成为你面霸路 ...
- 整理了 15 道 Spring Boot 高频面试题,看完当面霸!
转载:https://mp.weixin.qq.com/s/fj-DeDfGcIAs8jQbs6bbPA 什么是面霸?就是在面试中,神挡杀神佛挡杀佛,见招拆招,面到面试官自惭形秽自叹不如!松哥希望本文 ...
- 互联网大厂Java面试题集—Spring boot面试题(一)
Spring Boot 需要独立的容器运行吗? 可以不需要,内置了 Tomcat/ Jetty 等容器.通过pom.xml中导入依赖: <!--spring-boot-starter-web:代 ...
- Spring Boot面试题
Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一 Spring Boot.Spring MVC 和 Spring 有什么区别 ...
随机推荐
- Thinkphp5.0 的使用模型Model的获取器与修改器
Thinkphp5.0 的使用模型Model的获取器.修改器.软删除 一.获取器 在model中使用 get+字段名+Attr,可以修改字段的返回值. 数据库中性别保存为,0未知.1男.2女,查询时返 ...
- Codeforces 404D Minesweeper 1D
题意: 给定字符串,其中'*'表示地雷,'1'表示左/右边有一个地雷相邻,'2'表示左右两边均有地雷相邻,'0'表示左右均无地雷相邻,'?'表示待定,可填入0,1,2或者地雷,有多少种表示方法使字母串 ...
- TCP/IP学习笔记(5)------IP选路
静态IP选路 一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统路由表. D ...
- cogs——1001. [WZOI2011 S3] 消息传递
1001. [WZOI2011 S3] 消息传递 ★★ 输入文件:messagew.in 输出文件:messagew.out 简单对比时间限制:1 s 内存限制:128 MB Prob ...
- Codeforces 22E(图论)
题意: 给出n个节点,以及和这个节点指向的节点fi,表示从i能够到达fi,问至少需要添加多少条边能够使得原图变为强连通分量, 输出边数及添加的边,多解输出任意一组解. 2 <= n <= ...
- Ubuntu 16.04下操作iptables的技巧(解决Failed to start iptables.service: Unit iptables.service not found.或者/etc/init.d/iptables: 没有那个文件或目录)
/etc/init.d/iptables网上的解法应该都是基于CentOS 6去实践,而在CentOS 7中又被firewalld给取代,所以操作上的写法基本会改变,但是底层iptables则不会改变 ...
- 创建Filter步骤
创建Filter步骤: 创建Filter处理类 必须实现javax.servlet.Filter,该接口有init()完成filter初始化,destroy()完成资源回收,doFilter()过滤 ...
- PS如何绘制虚线圆
1 绘制一个圆的路径 2 选择铅笔工具,然后点击"画笔笔尖形状",选好笔尖的直径和间距(不同的直径对应不同的间距,没有标准数值,自己推拉滑动条就可以了) 3 在路径选项卡, ...
- Mac OS X 10.10下Versions crash的问题
升级完系统.Versions由于兼容性到问题,各种闪退,网上搜索了一下.知乎到一个帖子提到了暂时解决的方法,例如以下: Blackpixel 正在研究此崩溃的修复方案.暂时解决方式例如以下: 在文本编 ...
- android开发真机调试 相关东东
android开发真机调试 相关东东 我们做android开发的时候,可以用模拟器,也可以真机调试,但是电脑配置不高的话,模拟器,真的是慢的有的一说,所以我一直倾向于用真机调试,但是问题也就来了,模拟 ...