Java 崗位必備技能 SpringBoot 的 9 道面試題集錦
當(dāng)下 SpringBoot 框架真的很火,大多數(shù)企業(yè)把它作為基礎(chǔ)技能,考察求職者的能力。如下截圖,是我從 Boss 直聘中找到的,要求 SpringBoot 是必備技能。



所以非常有必要為了面試,好好歸納下 SpringBoot 常被提起來的問題。
題目大綱如下:
什么是 SpringBoot?
SpringBoot 與 Spring、Spring MVC 之間有什么關(guān)系?
使用 SpringBoot 有什么優(yōu)勢(shì)?
SpringBoot 默認(rèn)的配置文件是什么?
如何根據(jù) SpringBoot 項(xiàng)目所處的環(huán)境,定義不同的配置?
解釋下 SpringBoot 的核心注解 @SpringBootApplication 的組成
開啟 SpringBoot 特性的兩種方式?
SpringBoot 項(xiàng)目如何兼容 Spring 的配置
SpringBoot 的讀取放置在不同目錄下的配置文件,優(yōu)先級(jí)是怎樣的?
什么是 SpringBoot?
SpringBoot 是建立在現(xiàn)有 Spring 框架之上,使開發(fā)人員簡(jiǎn)化 Spring 項(xiàng)目開發(fā),降低使用成本。
SpringBoot 與 Spring、Spring MVC 之間有什么關(guān)系?
Spring 的全稱是 Spring Framework。
Spring MVC 是 Spring Framework 的子模塊。
而 SpringBoot 是構(gòu)造在 Spring Framework 之上的 Boot 啟動(dòng)器。
使用 SpringBoot 有什么優(yōu)勢(shì)?
內(nèi)嵌常用應(yīng)用服務(wù)器,比如 Tomcat、Jetty 等,不用單獨(dú)再配置應(yīng)用服務(wù)器,并且不用打成 war 包
可以以 jar 包的形式,快速獨(dú)立運(yùn)行項(xiàng)目
在 maven 的 pom.xml 配置文件中提供了 Starters,而不需要到處找依賴包,避免了大量依賴的導(dǎo)入以及版本之間的沖突與不兼容
SpringBoot 默認(rèn)的配置文件是什么?
默認(rèn)配置文件是項(xiàng)目根目錄下的 application.properties 或者 application.yml 文件。
如何根據(jù) SpringBoot 項(xiàng)目所處的環(huán)境,定義不同的配置?
我們可以在主配置文件 application.properties 之外,再新增如下文件,滿足不同環(huán)境的要求:
開發(fā)環(huán)境:application-dev.properties
測(cè)試環(huán)境:application-test.properties
生產(chǎn)環(huán)境:application-prop.properties
如果需要激活某個(gè)環(huán)境的配置,只需在主配置文件 application.properties 指定項(xiàng)目所在環(huán)境的標(biāo)識(shí),配置內(nèi)容如下:
spring:
?profiles:
? ?active: dev #開發(fā)環(huán)境
? ?
解釋下 SpringBoot 的核心注解 @SpringBootApplication 的組成

它包含以下 3 個(gè)重要的注解:
@ComponentScan
該注解實(shí)現(xiàn) Spring 組件的掃描。
@EnableAutoConfiguration
該注解能夠讓 SpringBoot 打開自動(dòng)配置的功能。
@SpringBootConfiguration
該注解實(shí)現(xiàn)配置文件的功能。
開啟 SpringBoot 特性的兩種方式?
繼承 spring-boot-starter-parent 項(xiàng)目
<parent>
? ?<groupId>org.springframework.boot</groupId>
? ?<artifactId>spring-boot-starter-parent</artifactId>
? ?<version>2.2.2.RELEASE</version>
</parent>
? ?
導(dǎo)入 spring-boot-dependencies 依賴
<dependency>
? ? ? ? ? ? ? ?<groupId>org.springframework.boot</groupId>
? ? ? ? ? ? ? ?<artifactId>spring-boot-dependencies</artifactId>
? ? ? ? ? ? ? ?<version>2.2.2.RELEASE</version>
? ? ? ? ? ? ? ?<scope>import</scope>
</dependency>
? ?
實(shí)際開發(fā)中,推薦使用第二種方式。因?yàn)槿绻覀儎?chuàng)建的項(xiàng)目已經(jīng)存在自己的父級(jí)項(xiàng)目,會(huì)與第一種方式存在沖突。
SpringBoot 項(xiàng)目如何兼容 Spring 的配置
在啟動(dòng)類中添加:

SpringBoot 的讀取放置在不同目錄下的配置文件,優(yōu)先級(jí)是怎樣的?
配置文件具體可以放置在如下目錄,按被讀取的優(yōu)先級(jí)由高到低排列:
#當(dāng)前項(xiàng)目根目錄下的config目錄下,被讀取的優(yōu)先級(jí)最高
file:/config/
#當(dāng)前項(xiàng)目根目錄下
file:/
#類路徑下的config目錄下
classpath:/config/
#類路徑目錄下,被讀取的優(yōu)先級(jí)最低
classpath:/
? ?
假如項(xiàng)目中存在兩個(gè)及以上的這樣的目錄,等級(jí)高的會(huì)覆蓋掉比它低的配置文件。

為了方便給大家準(zhǔn)備了非常全的一套 SpringBoot 一線大廠面試題。全面覆蓋 BATJ 等一線互聯(lián)網(wǎng)公司的面試題及解答,由 BAT 一線互聯(lián)網(wǎng)公司大牛帶你深度剖析面試題背后的原理,不僅授你以魚,更授你以漁,為你面試掃除一切障礙。資料已整理成文檔,需要獲取的小伙伴可以+ VX: ?mxk6072






需要的小伙伴私我(111)即可