如何理解Spring Boot中的Starter?

一個(gè)工作了3年的Java程序員,遇到一個(gè)Spring Boot的問(wèn)題。

他對(duì)這個(gè)問(wèn)題有一些了解,但是回答得不是很好,希望參考我的高手回答。

這個(gè)問(wèn)題是:“如何理解Spring Boot中的Starter”。

對(duì)于這個(gè)問(wèn)題,看看普通人和高手的回答。

普通人:

嗯。。。。。。。。。。。。。

高手:

Starter是Spring Boot的四大核心功能特性之一,除此之外,Spring Boot還有自動(dòng)裝配、Actuator監(jiān)控等特性。

Spring Boot里面的這些特性,都是為了讓開發(fā)者在開發(fā)基于Spring生態(tài)下的企業(yè)級(jí)應(yīng)用時(shí),只需要關(guān)心業(yè)務(wù)邏輯,

減少對(duì)配置和外部環(huán)境的依賴。

其中,Starter是啟動(dòng)依賴,它的主要作用有幾個(gè)。

Starter組件以功能為緯度,來(lái)維護(hù)對(duì)應(yīng)的jar包的版本依賴,

使得開發(fā)者可以不需要去關(guān)心這些版本沖突這種容易出錯(cuò)的細(xì)節(jié)。

Starter組件會(huì)把對(duì)應(yīng)功能的所有jar包依賴全部導(dǎo)入進(jìn)來(lái),避免了開發(fā)者自己去引入依賴帶來(lái)的麻煩。

Starter內(nèi)部集成了自動(dòng)裝配的機(jī)制,也就說(shuō)在程序中依賴對(duì)應(yīng)的starter組件以后,

這個(gè)組件自動(dòng)會(huì)集成到Spring生態(tài)下,并且對(duì)于相關(guān)Bean的管理,也是基于自動(dòng)裝配機(jī)制來(lái)完成。

依賴Starter組件后,這個(gè)組件對(duì)應(yīng)的功能所需要維護(hù)的外部化配置,會(huì)自動(dòng)集成到Spring Boot里面,

我們只需要在application.properties文件里面進(jìn)行維護(hù)就行了,比如Redis這個(gè)starter,只需要在application.properties

文件里面添加redis的連接信息就可以直接使用了。

在我看來(lái),Starter組件幾乎完美的體現(xiàn)了Spring Boot里面約定優(yōu)于配置的理念。

另外,Spring Boot官方提供了很多的Starter組件,比如Redis、JPA、MongoDB等等。

但是官方并不一定維護(hù)了所有中間件的Starter,所以對(duì)于不存在的Starter,第三方組件一般會(huì)自己去維護(hù)一個(gè)。

官方的starter和第三方的starter組件,最大的區(qū)別在于命名上。

官方維護(hù)的starter的以spring-boot-starter開頭的前綴。

第三方維護(hù)的starter是以spring-boot-starter結(jié)尾的后綴

這也是一種約定優(yōu)于配置的體現(xiàn)。

以上就是我對(duì)這個(gè)問(wèn)題的理解。

總結(jié)

在技術(shù)的學(xué)習(xí)過(guò)程中,我認(rèn)為“為什么是” 比 “是什么”要重要。

以這種方式來(lái)學(xué)習(xí),帶來(lái)的好處就是對(duì)技術(shù)理解會(huì)更加深刻。

這道題考察的就是“為什么是”,不難,關(guān)鍵在于自己的理解。

如果你喜歡這篇文章,記得點(diǎn)贊和收藏。

如果想獲得一對(duì)一的面試指導(dǎo)以及面試資料,可以私信我。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容