2021最全最新Spring Boot面试题+答案(持续更新)

    • 1.什么是 spring boot?
    • 2.为什么要用 spring boot?
    • 3.spring boot 核心配置文件是什么?
    • 4.spring boot 配置文件有哪几种类型?它们有什么区别?
    • 5.spring boot 有哪些方式可以实现热部署?

1.什么是 spring boot?

spring boot 是在spring这个很low还巨难用的框架之后衍生出来的,一个比较能让程序员偷懒的框架。

说白了,之前用spring搭建一个web应用的架子要导n个外部的jar包和创建n个配置文件(这直接让我这号嫌麻烦的人裂开了),现在拿个spring boot搭建一个架子,直接官网不用一分钟搞个zip包下来就完事了,包括内置的Tomcat服务器啥都有了。懒人神器。
面试题标准答案:

Springboot是一个框架,一种全新的编程规范,
它简化了Spring众多框架中所需的大量且繁琐的配置文件,
所有SpringBoot是一个服务于框架的框架
服务范围是简化配置文件

2.为什么要用 spring boot?

来让我从我尘封多年的文档中翻找一下spring是怎么搭建的:(大佬可以跳过)
步骤:
创建项目(java,web)这一步 是基础
导入jar包 这一步是spring的功能基础
创建java类 包括哪些类要实例化对象
创建spring的配置文件是提供spring的清单文件.告知spring框架,哪些类需要实例化对象
导入的jar:

  • commons-logging-1.2.jar
  • spring-beans-4.3.7.RELEASE.jar
  • spring-context-4.3.7.RELEASE.jar
  • spring-core-4.3.7.RELEASE.jar
  • spring-expression-4.3.7.RELEASE.jar

启动spring容器读取配置文件 读取清单文件内容,去逐一创建java的对象
从容器中取出对象备用

创建java类,任意的java类都可以交给spirng容器创建和管理
比如说,咱创建了一个Hello类,那就要在spring.xml文件中定义一个bean标签,通过全路径名指向这个类,这样就把这类给管住了。

这样式儿一看,这spring真的是麻烦他妈给麻烦开门,麻烦到家了。

我这想着上班来噼里啪啦一顿操作写代码呢,没想到这尼玛配置就玩了大半天。

让文件配置变得相当简单
让应用部署变得简单
可以快速开启一个Web容器进行开发
Spring Boot使编码变简单
Spring Boot使配置变简单
Spring Boot使部署变简单
Spring Boot使监控变简单
Spring的不足

3.spring boot 核心配置文件是什么?

说实话,俺只用过application.yml。

咋一看bootstrap,俺以为这玩意是拿来写css的。

不过没吃过猪肉,还没见过猪跑啊

打工人基本的两个英文,咱还是能懂的。

boot那不就是启动么。

好嘛,没用过,咱还是去百度吧

bootstrap.yml(bootstrap.properties)用来在程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等

application.yml(application.properties) 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。

bootstrap.yml 先于 application.yml 加载

网上乱七八糟资料一大堆,说白了,这东西一般常用在spring cloud中。

bootstrap(.yml或者.properties)
application(.yml或者.properties)

4.spring boot 配置文件有哪几种类型?它们有什么区别?

像这种问题就比较简单,俺认为面试官能问出来这问题,只是为了筛出一批项目中没用过springboot框架的人。

properties 文件一般是很长的一段用句点分割,yml就是用的空格,把一个单词一个单词的分开,像个阶梯式的整的。俺两种都用过,之前遇到过把yml类型的改成properties类型的时候,配置文件才生效的情况。

Spring Boot提供了两种常用的配置文件,分别是properties文件和yml文件。相对于properties文件而言,yml文件更年轻,也有很多的坑。可谓成也萧何败萧何,yml通过空格来确定层级关系,使配置文件结构跟清晰,但也会因为微不足道的空格而破坏了层级关系。

5.spring boot 有哪些方式可以实现热部署?

说实话,前端用过热部署也就是了,后端用热部署真是扯淡,不过有些阴阳面试官就喜欢问。

SpringBoot热部署实现有两种方式:
①. 使用spring loaded
②. 使用spring-boot-devtools

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
 </dependency>

然后:使用 shift+ctrl+alt+"/" (IDEA中的快捷键) 选择"Registry" 然后勾选 compiler.automake.allow.when.app.running

还有更让俺难受的就是问ide的快捷键,可能俺这回就在想了,俺能给你把功能实现不就完事了?恁问俺快捷键有啥意思。还真有趣,就是为了检测开发功底是真是假,嘿,就是玩。

持续更新中(说白了springboot框架中能问的东西不多,毕竟这框架就是在spring身上套了个架子)

更多推荐

2021最全最新Spring Boot面试题+答案(持续更新)