Spring Boot 面試,一個問題你就答不上來了
最近我面試了不少人,其中不乏說對 Spring Boot 非常熟悉的,然後當我問到一些 Spring Boot 核心功能和原理的時候,沒人能說得上來,或者說不到點上,可以說一個問題就問趴下了!
這是我的問題:
我看你上面寫了熟悉 Spring Boot,那你能講下為什麼我們要用 Spring Boot 嗎?
下面我列幾個最常見的三個回答:
A:Spring Boot 最主要是不用 XML 配置,可以用 Java 來配置 bean,省去了許多配置檔案。
我又問:Spring 本身就可以用 Java 配置代替 XML 配置,和 Spring Boot 有什麼關係呢?
然後對方就吱吱唔唔了……
B:Spring Boot 我們用來做 Spring Cloud 微服務。
我又問:微服務和 Spring Boot 有什麼關係?不用 Spring Boot 行不行?
然後對方就吱吱唔唔了……
C:Spring Boot 可以打 jar 包部署,內部整合了Tomcat。
這個確實是 Spring Boot 的特色,但是我還是覺得沒有答到關鍵點上。
然後我繼續問,如果不考慮打 Jar 包部署呢,然後就沒然後了……
為什麼我們要用 Spring Boot,顯然上面三個求職者沒有答到關鍵點上,Spring Boot 最重要的功能是: 自動配置。
為什麼說是自動配置?
Spring Boot 的開啟註解是:@SpringBootApplication,其實它就是由下面三個註解組成的:
- @Configuration
- @ComponentScan
- @EnableAutoConfiguration
上面三個註解,前面兩個都是 Spring 自帶的,和 Spring Boot 無關,所以說上面的回答的不是在點上。具體請看這篇文章:Spring Boot 最核心的 3 個註解詳解。
所以說 Spring Boot 最最核心的就是這個 @EnableAutoConfiguration 註解了,它能根據類路徑下的 jar 包和配置動態載入配置和注入bean。
舉個例子,比如我在 lib 下放一個 druid 連線池的 Jar 包,然後在 application.yml 檔案配置 druid 相關的引數,Spring Boot 就能夠自動配置所有我們需要的東西,如果我把 jar 包拿掉或者把引數去掉,那 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>
再新增相關引數:
spring.datasource.url= spring.datasource.username= spring.datasource.password= ……
如果是傳統的專案,我們要自己手動寫一大堆的配置,而且還不靈活,有了這個啟動器,我們就可以做到簡單整合。具體大家可以看 druid-spring-boot-starter 是怎麼實現的,也可以參考之前寫的文章:Spring Boot自動配置原理、實戰。
所以,這才是 Spring Boot 的核心,這才是我們為什麼使用 Spring Boot 的原因。如果答不到這個關鍵點,那真沒有掌握到 Spring Boot 的核心所在。
說的這個希望對大家有些實質性的幫助!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2658357/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring Boot 面試,一個問題就幹趴下了!Spring Boot面試
- 邦芒面試:這10個問題都答不上來,你還想透過面試?面試
- 面試時這麼問你Spring Boot,你能答對幾個?面試Spring Boot
- Spring Boot面試中的一個精髓註解,不會就給淘汰Spring Boot面試
- 面試了50個前端工程師後,99%答不上這些題面試前端工程師
- Spring Boot面試問題| BaeldungSpring Boot面試
- 《27道大廠高頻Spring面試題,95%的人答不上》Spring面試題
- Spring Boot面試題,你會需要的!Spring Boot面試題
- Spring Boot 面試題Spring Boot面試題
- 老許,你要轉陣 Flutter不?你開了金口,面試題現在就給你送來Flutter面試題
- 面試問你為什麼要用Spring怎麼答?面試Spring
- 2019年Spring Boot面試都問了什麼?快看看這22道面試題!Spring Boot面試題
- 新一期Spring Boot 面試題Spring Boot面試題
- js非同步程式設計面試題你能答上來幾道JS非同步程式設計面試題
- 40個Java集合面試問題和答案,面試奇葩問題,你掌握了嗎?Java面試
- Apache Hive 面試問答題ApacheHive面試
- 面試官:我們來聊一聊Redis吧,你瞭解多少就答多少面試Redis
- 面試了一個 5 年 Java 程式設計師,一個問題也不會。。面試Java程式設計師
- 面試一次次問的效能優化,這次終於答上來了面試優化
- Java面試必問面試題,你掌握了嗎?Java面試題
- 20 道 Spring Boot 面試題你需要了解下Spring Boot面試題
- 常見Linux運維面試題,你答對了嗎?Linux運維面試題
- 我攤牌了,大廠面試Linux就這5個問題面試Linux
- 精選Spring Boot三十五道面試題,快來了解一下!Spring Boot面試題
- 6道常見的python面試題,你答對了嗎?Python面試題
- 為Spring Boot面試準備13個主題 - javinpaulSpring Boot面試
- 吐血整理 20 道 Spring Boot 面試題,我經常拿來面試別人!Spring Boot面試題
- 當面試官問出“Unsafe”類時,我就知道這場面試廢了,祖墳都能給你問出來!面試
- 一個考併發的面試題,怎麼答??面試題
- Web 面試問答Web面試
- Spring Boot面試題(2020最新版)Spring Boot面試題
- 75 道 BAJT 高階 Java 面試題,你能答上幾道?Java面試題
- 75 道 BAJT 中高階 Java 面試題,你能答上幾道?Java面試題
- Android 面試官:簡述一下 View 的繪製流程,這個都答不出來就別想拿Offer了Android面試View
- 求職時這樣回答問題你就輸了!來自IT類面試官視角的深度解讀求職面試
- 10道網路安全基礎面試題,你答對了幾道?面試題
- 這30道Web前端面試題,一個小時內你能否答得出來?Web前端面試題
- 答面試題·答J_Knight_《2017年5月iOS招人心得(附面試題)》中的面試題(一)面試題iOS