一個工作了3年的Java程式員,遇到一個Spring Boot的問題。 他對這個問題有一些瞭解,但是回答得不是很好,希望參考我的高手回答。 這個問題是:“如何理解Spring Boot中的Starter”。 對於這個問題,看看普通人和高手的回答。 普通人: 嗯。。。。。。。。。。。。。 高手: St ...
一個工作了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帶你學架構
!
如果本篇文章對您有幫助,還請幫忙點個關註和贊,您的堅持是我不斷創作的動力。歡迎關註「跟著Mic學架構」公眾號公眾號獲取更多技術乾貨!