成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

吐血整理 20 道 Spring Boot 面試題,我經(jīng)常拿來(lái)面試別人!

haoguo / 3604人閱讀

摘要:你如何理解中的可以理解為啟動(dòng)器,它包含了一系列可以集成到應(yīng)用里面的依賴(lài)包,你可以一站式集成及其他技術(shù),而不需要到處找示例代碼和依賴(lài)包。如你想使用訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),只要加入啟動(dòng)器依賴(lài)就能使用了。

面試了一些人,簡(jiǎn)歷上都說(shuō)自己熟悉 Spring Boot, 或者說(shuō)正在學(xué)習(xí) Spring Boot,一問(wèn)他們時(shí),都只停留在簡(jiǎn)單的使用階段,很多東西都不清楚,也讓我對(duì)面試者大失所望。

下面,我給大家總結(jié)下有哪些 Spring Boot 的面試題,這是我經(jīng)常拿來(lái)問(wèn)面試者的,希望對(duì)你有幫助。

1、什么是 Spring Boot?

Spring Boot 是 Spring 開(kāi)源組織下的子項(xiàng)目,是 Spring 組件一站式解決方案,主要是簡(jiǎn)化了使用 Spring 的難度,簡(jiǎn)省了繁重的配置,提供了各種啟動(dòng)器,開(kāi)發(fā)者能快速上手。

更多 Spring Boot 詳細(xì)介紹請(qǐng)看這篇文章《什么是Spring Boot?》。

2、為什么要用 Spring Boot?

Spring Boot 優(yōu)點(diǎn)非常多,如:

獨(dú)立運(yùn)行

簡(jiǎn)化配置

自動(dòng)配置

無(wú)代碼生成和XML配置

應(yīng)用監(jiān)控

上手容易

...

Spring Boot 集這么多優(yōu)點(diǎn)于一身,還有理由不使用它呢?

3、Spring Boot 的核心配置文件有哪幾個(gè)?它們的區(qū)別是什么?

Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。

application 配置文件這個(gè)容易理解,主要用于 Spring Boot 項(xiàng)目的自動(dòng)化配置。

bootstrap 配置文件有以下幾個(gè)應(yīng)用場(chǎng)景。

使用 Spring Cloud Config 配置中心時(shí),這時(shí)需要在 bootstrap 配置文件中添加連接到配置中心的配置屬性來(lái)加載外部配置中心的配置信息;

一些固定的不能被覆蓋的屬性;

一些加密/解密的場(chǎng)景;

具體請(qǐng)看這篇文章《Spring Boot 核心配置文件詳解》。

4、Spring Boot 的配置文件有哪幾種格式?它們有什么區(qū)別?

.properties 和 .yml,它們的區(qū)別主要是書(shū)寫(xiě)格式不同。

1).properties

app.user.name = javastack

2).yml

app:
  user:
    name: javastack

另外,.yml 格式不支持 @PropertySource 注解導(dǎo)入配置。

5、Spring Boot 的核心注解是哪個(gè)?它主要由哪幾個(gè)注解組成的?

啟動(dòng)類(lèi)上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要組合包含了以下 3 個(gè)注解:

@SpringBootConfiguration:組合了 @Configuration 注解,實(shí)現(xiàn)配置文件的功能。

@EnableAutoConfiguration:打開(kāi)自動(dòng)配置的功能,也可以關(guān)閉某個(gè)自動(dòng)配置的選項(xiàng),如關(guān)閉數(shù)據(jù)源自動(dòng)配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

@ComponentScan:Spring組件掃描。

6、開(kāi)啟 Spring Boot 特性有哪幾種方式?

1)繼承spring-boot-starter-parent項(xiàng)目

2)導(dǎo)入spring-boot-dependencies項(xiàng)目依賴(lài)

具體請(qǐng)參考這篇文章《Spring Boot開(kāi)啟的2種方式》。

7、Spring Boot 需要獨(dú)立的容器運(yùn)行嗎?

可以不需要,內(nèi)置了 Tomcat/ Jetty 等容器。

8、運(yùn)行 Spring Boot 有哪幾種方式?

1)打包用命令或者放到容器中運(yùn)行

2)用 Maven/ Gradle 插件運(yùn)行

3)直接執(zhí)行 main 方法運(yùn)行

9、Spring Boot 自動(dòng)配置原理是什么?

注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自動(dòng)配置的核心,首先它得是一個(gè)配置文件,其次根據(jù)類(lèi)路徑下是否有這個(gè)類(lèi)去自動(dòng)配置。

具體看這篇文章《Spring Boot自動(dòng)配置原理、實(shí)戰(zhàn)》。

10、Spring Boot 的目錄結(jié)構(gòu)是怎樣的?

cn
 +- javastack
     +- MyApplication.java
     |
     +- customer
     |   +- Customer.java
     |   +- CustomerController.java
     |   +- CustomerService.java
     |   +- CustomerRepository.java
     |
     +- order
         +- Order.java
         +- OrderController.java
         +- OrderService.java
         +- OrderRepository.java

這個(gè)目錄結(jié)構(gòu)是主流及推薦的做法,而在主入口類(lèi)上加上 @SpringBootApplication 注解來(lái)開(kāi)啟 Spring Boot 的各項(xiàng)能力,如自動(dòng)配置、組件掃描等。具體看這篇文章《Spring Boot 主類(lèi)及目錄結(jié)構(gòu)介紹》。

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

Starters可以理解為啟動(dòng)器,它包含了一系列可以集成到應(yīng)用里面的依賴(lài)包,你可以一站式集成 Spring 及其他技術(shù),而不需要到處找示例代碼和依賴(lài)包。如你想使用 Spring JPA 訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),只要加入 spring-boot-starter-data-jpa 啟動(dòng)器依賴(lài)就能使用了。

Starters包含了許多項(xiàng)目中需要用到的依賴(lài),它們能快速持續(xù)的運(yùn)行,都是一系列得到支持的管理傳遞性依賴(lài)。具體請(qǐng)看這篇文章《Spring Boot Starters啟動(dòng)器》。

12、如何在 Spring Boot 啟動(dòng)的時(shí)候運(yùn)行一些特定的代碼?

可以實(shí)現(xiàn)接口 ApplicationRunner 或者 CommandLineRunner,這兩個(gè)接口實(shí)現(xiàn)方式一樣,它們都只提供了一個(gè) run 方法,具體請(qǐng)看這篇文章《Spring Boot Runner啟動(dòng)器》。

13、Spring Boot 有哪幾種讀取配置的方式?

Spring Boot 可以通過(guò) @PropertySource,@Value,@Environment, @ConfigurationProperties 來(lái)綁定變量,具體請(qǐng)看這篇文章《Spring Boot讀取配置的幾種方式》。

14、Spring Boot 支持哪些日志框架?推薦和默認(rèn)的日志框架是哪個(gè)?

Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作為日志框架,如果你使用 Starters 啟動(dòng)器,Spring Boot 將使用 Logback 作為默認(rèn)日志框架,具體請(qǐng)看這篇文章《Spring Boot日志集成》。

15、SpringBoot 實(shí)現(xiàn)熱部署有哪幾種方式?

主要有兩種方式:

Spring Loaded

Spring-boot-devtools

Spring-boot-devtools 使用方式可以參考這篇文章《Spring Boot實(shí)現(xiàn)熱部署》。

16、你如何理解 Spring Boot 配置加載順序?

在 Spring Boot 里面,可以使用以下幾種方式來(lái)加載配置。

1)properties文件;

2)YAML文件;

3)系統(tǒng)環(huán)境變量;

4)命令行參數(shù);

等等……

具體請(qǐng)看這篇文章《Spring Boot 配置加載順序詳解》。

17、Spring Boot 如何定義多套不同環(huán)境配置?

提供多套配置文件,如:

applcation.properties

application-dev.properties

application-test.properties

application-prod.properties

運(yùn)行時(shí)指定具體的配置文件,具體請(qǐng)看這篇文章《Spring Boot Profile 不同環(huán)境配置》。

18、Spring Boot 可以兼容老 Spring 項(xiàng)目嗎,如何做?

可以兼容,使用 @ImportResource 注解導(dǎo)入老 Spring 項(xiàng)目配置文件。

19、保護(hù) Spring Boot 應(yīng)用有哪些方法?

在生產(chǎn)中使用HTTPS

使用Snyk檢查你的依賴(lài)關(guān)系

升級(jí)到最新版本

啟用CSRF保護(hù)

使用內(nèi)容安全策略防止XSS攻擊

...

更多請(qǐng)看這篇文章《10 種保護(hù) Spring Boot 應(yīng)用的絕佳方法》。

20、Spring Boot 2.X 有什么新特性?與 1.X 有什么區(qū)別?

配置變更

JDK 版本升級(jí)

第三方類(lèi)庫(kù)升級(jí)

響應(yīng)式 Spring 編程支持

HTTP/2 支持

配置屬性綁定

更多改進(jìn)與加強(qiáng)...

具體請(qǐng)看這篇文章《Spring Boot 2.x 新特性總結(jié)及遷移指南》。

終于寫(xiě)完了,希望大家好好學(xué)習(xí)下再去面試,不然再被面試官問(wèn)這些問(wèn)題,又答不上來(lái)就尷尬了。弄懂了這些問(wèn)題,對(duì)你理解 Spring Boot 也有非常大的幫助。

這 20 道面試題就算第一季吧,后面會(huì)整理更多季 Spring Boot/Cloud 相關(guān)的面試題。更多的 Spring Boot 系列技術(shù)文章,請(qǐng)關(guān)注微信公眾號(hào):Java技術(shù)棧(id: javastack),在后臺(tái)回復(fù)關(guān)鍵字 "boot" 獲取。

更多干貨推薦

1.史上最強(qiáng) Java 中高級(jí)面試題整理

2.史上最強(qiáng) Spring Boot & Cloud 教程整理

3.史上最強(qiáng)架構(gòu)設(shè)計(jì)分布式技術(shù)干貨整理

本文原創(chuàng)首發(fā)于微信公眾號(hào):Java技術(shù)棧(id:javastack),關(guān)注公眾號(hào)在后臺(tái)回復(fù) "boot" 可獲取更多,轉(zhuǎn)載請(qǐng)?jiān)瓨颖A舯拘畔ⅰ?/pre>           
               
                                           
                       
                 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71694.html

相關(guān)文章

  • 【推薦】最新200篇:技術(shù)文章整理

    摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語(yǔ)言和等其他語(yǔ)言的對(duì)比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問(wèn)到的持久化與恢復(fù)實(shí)現(xiàn)故障恢復(fù)自動(dòng)化詳解哨兵技術(shù)查漏補(bǔ)缺最易錯(cuò)過(guò)的技術(shù)要點(diǎn)大掃盲意外宕機(jī)不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語(yǔ)言和Java、python等其他語(yǔ)言的對(duì)比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...

    BicycleWarrior 評(píng)論0 收藏0
  • 【推薦】最新200篇:技術(shù)文章整理

    摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語(yǔ)言和等其他語(yǔ)言的對(duì)比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問(wèn)到的持久化與恢復(fù)實(shí)現(xiàn)故障恢復(fù)自動(dòng)化詳解哨兵技術(shù)查漏補(bǔ)缺最易錯(cuò)過(guò)的技術(shù)要點(diǎn)大掃盲意外宕機(jī)不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語(yǔ)言和Java、python等其他語(yǔ)言的對(duì)比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...

    tommego 評(píng)論0 收藏0
  • 史上最全 40 Dubbo 面試及答案,看完碾壓面試官!

    摘要:更是中高級(jí)面試過(guò)程中經(jīng)常會(huì)問(wèn)的技術(shù),無(wú)論你是否用過(guò),你都必須熟悉。下面我為大家準(zhǔn)備了一些常見(jiàn)的的面試題,一些是我經(jīng)常問(wèn)別人的,一些是我過(guò)去面試遇到的一些問(wèn)題,總結(jié)給大家,希望對(duì)大家能有所幫助。 想往高處走,怎么能不懂 Dubbo? Dubbo是國(guó)內(nèi)最出名的分布式服務(wù)框架,也是 Java 程序員必備的必會(huì)的框架之一。Dubbo 更是中高級(jí)面試過(guò)程中經(jīng)常會(huì)問(wèn)的技術(shù),無(wú)論你是否用過(guò),你都必須...

    nemo 評(píng)論0 收藏0
  • 墻裂推薦:搜云庫(kù)技術(shù)團(tuán)隊(duì),面試必備的技術(shù)干貨

    摘要:今天整理了一下近大半年以來(lái)的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫(xiě)過(guò)了,這個(gè)記錄的過(guò)程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 今天整理了一下近大半年以來(lái)的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫(xiě)過(guò)了,這個(gè)記錄的過(guò)程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...

    SegmentFault 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

haoguo

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<