一個工作了3年的Java程式設計師,遇到一個Spring Boot的問題。
他對這個問題有一些瞭解,但是回答得不是很好,希望參考我的高手回答。
這個問題是:“如何理解Spring Boot中的Starter”。
對於這個問題,看看普通人和高手的回答。
普通人:
嗯。。。。。。。。。。。。。
高手:
Starter是Spring Boot的四大核心功能特性之一,除此之外,Spring Boot還有自動裝配、Actuator監控等特性。
Spring Boot裡面的這些特性,都是為了讓開發者在開發基於Spring生態下的企業級應用時,只需要關心業務邏輯,
減少對配置和外部環境的依賴。
其中,Starter是啟動依賴,它的主要作用有幾個。
Starter元件以功能為緯度,來維護對應的jar包的版本依賴,
使得開發者可以不需要去關心這些版本衝突這種容易出錯的細節。
- Starter元件會把對應功能的所有jar包依賴全部匯入進來,避免了開發者自己去引入依賴帶來的麻煩。
Starter內部整合了自動裝配的機制,也就說在程式中依賴對應的starter元件以後,
這個元件自動會整合到Spring生態下,並且對於相關Bean的管理,也是基於自動裝配機制來完成。
依賴Starter元件後,這個元件對應的功能所需要維護的外部化配置,會自動整合到Spring Boot裡面,
我們只需要在application.properties檔案裡面進行維護就行了,比如Redis這個starter,只需要在application.properties
檔案裡面新增redis的連線資訊就可以直接使用了。
在我看來,Starter元件幾乎完美的體現了Spring Boot裡面約定優於配置的理念。
另外,Spring Boot官方提供了很多的Starter元件,比如Redis、JPA、MongoDB等等。
但是官方並不一定維護了所有中介軟體的Starter,所以對於不存在的Starter,第三方元件一般會自己去維護一個。
官方的starter和第三方的starter元件,最大的區別在於命名上。
官方維護的starter的以spring-boot-starter開頭的字首。
第三方維護的starter是以spring-boot-starter結尾的字尾
這也是一種約定優於配置的體現。
以上就是我對這個問題的理解。
總結
在技術的學習過程中,我認為“為什麼是” 比 “是什麼”要重要。
以這種方式來學習,帶來的好處就是對技術理解會更加深刻。
這道題考察的就是“為什麼是”,不難,關鍵在於自己的理解。
如果你喜歡這篇文章,記得點贊和收藏。
如果想獲得一對一的面試指導以及面試資料,可以私信我。
版權宣告:本部落格所有文章除特別宣告外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自Mic帶你學架構
!
如果本篇文章對您有幫助,還請幫忙點個關注和贊,您的堅持是我不斷創作的動力。歡迎關注同名微信公眾號獲取更多技術乾貨!