Spring Boot 面試不被干趴下

隨著Spring Boot的面世已經(jīng)有幾年了,給程序員帶來的最直觀的感受是配置減少了。至于Spring Boot的核心功能和原理,很少人能答上來。為了在互聯(lián)網(wǎng)寒冬中能找到工作。今天根據(jù)所學(xué)發(fā)表下關(guān)于spring Boot的愚見,下面以考官和面試者的場景展開。
這是面試官的問題:
我看你上面寫了熟悉 Spring Boot,那你能講下為什么我們要用 Spring Boot 嗎?
下面我列幾個最常見的三個回答:
A:Spring Boot 最主要是不用 XML 配置,可以用 Java 來配置 bean,省去了許多配置文件。
面試官又問:Spring 本身就可以用 Java 配置代替 XML 配置,和 Spring Boot 有什么關(guān)系呢?
然后對方就吱吱唔唔了……
B:Spring Boot 我們用來做 Spring Cloud 微服務(wù)。
面試官又問:微服務(wù)和 Spring Boot 有什么關(guān)系?不用 Spring Boot 行不行?
然后對方就吱吱唔唔了……
C:Spring Boot 可以打 jar 包部署,內(nèi)部集成了Tomcat。
這個確實是 Spring Boot 的特色,但是我還是覺得沒有答到關(guān)鍵點上。
然后我繼續(xù)問,如果不考慮打 jar 包部署呢,然后就沒然后了……
為什么我們要用 Spring Boot,顯然上面三個求職者沒有答到關(guān)鍵點上,Spring Boot 最重要的功能是:自動配置。
為什么說是自動配置?
Spring Boot 的開啟注解是:@SpringBootApplication,其實它就是由下面三個注解組成的:
@Configuration
@ComponentScan
@EnableAutoConfiguration
上面三個注解,前面兩個都是 Spring 自帶的,和 Spring Boot 無關(guān),所以說上面的回答的不是在點上。
所以說 Spring Boot 最最核心的就是這個 @EnableAutoConfiguration 注解了,它能根據(jù)類路徑下的 jar 包和配置動態(tài)加載配置和注入bean。
舉個例子,比如我在 lib 下放一個 druid 連接池的 jar 包,然后在 application.yml 文件配置 druid 相關(guān)的參數(shù),Spring Boot 就能夠自動配置所有我們需要的東西,如果我把 jar 包拿掉或者把參數(shù)去掉,那 Spring Boot 就不會自動配置。
這樣我們就能把許多功能做成公共的自動配置的啟動器(starters),其實 druid 連接池就是這么做的,它提供了針對 Spring Boot 的啟動器:druid-spring-boot-starter。
有了這個自動配置的啟動器,我們就能非常簡單的使用它,
先添加 jar 包依賴:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency>
再添加相關(guān)參數(shù):
spring.datasource.url= spring.datasource.username= spring.datasource.password= ……
如果是傳統(tǒng)的項目,我們要自己手動寫一大堆的配置,而且還不靈活,有了這個啟動器,我們就可以做到簡單集成。具體大家可以看 druid-spring-boot-starter 是怎么實現(xiàn)的。
所以,這才是 Spring Boot 的核心,這才是我們?yōu)槭裁词褂?Spring Boot 的原因。如果答不到這個關(guān)鍵點,那真沒有掌握到 Spring Boot 的核心所在。
總結(jié)
以上所述是小編給大家介紹的Spring Boot 面試,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
- 這篇文章主要介紹了程序員面試的幾個小技巧,在平時面試的時候,除了實打?qū)嵉募寄苓€需要更多的技巧,雙管齊下才能贏得更大的勝算,技能方面就不多說了,下面來分享幾個面試2023-04-23
- 面試中,問鎖主要是兩方面:鎖的日常使用場景 + 鎖原理,鎖的日常使用場景主要考察對鎖 API 的使用熟練度,看看你是否真的使用過這些 API,而不是紙上談兵,鎖原理主要就是2022-05-19
- 這篇文章主要介紹了Mybatis常見面試題詳細(xì)總結(jié),通過總結(jié)列舉大量的mybatis面試常見題目供給大家參考,希望對大家有所幫助2021-08-24
2020Java后端開發(fā)面試題總結(jié)(春招+秋招+社招)
這篇文章主要介紹了2020Java后端開發(fā)面試題總結(jié)(春招+秋招+社招),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2021-02-18- 這篇文章主要介紹了MySQL數(shù)據(jù)庫選擇題小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2021-02-07
- 這篇文章主要介紹了30道有趣的JVM面試題(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2020-11-26
- 這篇文章主要介紹了Python面試題爬蟲篇小結(jié)(附答案),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2020-10-28
- 這篇文章主要介紹了還不理解B樹和B+樹,那就看看這篇文章吧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一2020-09-10
Java面試通關(guān)要點匯總(備戰(zhàn)秋招)
這篇文章主要介紹了Java面試通關(guān)要點匯總(備戰(zhàn)秋招),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2020-09-08- 這篇文章主要介紹了10道JVM常見面試題解析(附答案),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)2020-09-04