一個工作了3年的Java程序員双抽,遇到一個Spring Boot的問題百框。
他對這個問題有一些了解,但是回答得不是很好牍汹,希望參考我的高手回答铐维。
這個問題是:“如何理解Spring Boot中的Starter”。
對于這個問題慎菲,看看普通人和高手的回答嫁蛇。
普通人:
嗯。。。耻讽。。闸拿。。书幕。新荤。。台汇。苛骨。。
高手:
Starter是Spring Boot的四大核心功能特性之一苟呐,除此之外痒芝,Spring Boot還有自動裝配、Actuator監(jiān)控等特性牵素。
Spring Boot里面的這些特性严衬,都是為了讓開發(fā)者在開發(fā)基于Spring生態(tài)下的企業(yè)級應(yīng)用時,只需要關(guān)心業(yè)務(wù)邏輯笆呆,
減少對配置和外部環(huán)境的依賴请琳。
其中,Starter是啟動依賴赠幕,它的主要作用有幾個俄精。
Starter組件以功能為緯度,來維護對應(yīng)的jar包的版本依賴榕堰,
使得開發(fā)者可以不需要去關(guān)心這些版本沖突這種容易出錯的細節(jié)竖慧。
Starter組件會把對應(yīng)功能的所有jar包依賴全部導(dǎo)入進來,避免了開發(fā)者自己去引入依賴帶來的麻煩逆屡。
Starter內(nèi)部集成了自動裝配的機制圾旨,也就說在程序中依賴對應(yīng)的starter組件以后,
這個組件自動會集成到Spring生態(tài)下康二,并且對于相關(guān)Bean的管理碳胳,也是基于自動裝配機制來完成。
依賴Starter組件后沫勿,這個組件對應(yīng)的功能所需要維護的外部化配置挨约,會自動集成到Spring Boot里面,
我們只需要在application.properties文件里面進行維護就行了产雹,比如Redis這個starter诫惭,只需要在application.properties
文件里面添加redis的連接信息就可以直接使用了。
在我看來蔓挖,Starter組件幾乎完美的體現(xiàn)了Spring Boot里面約定優(yōu)于配置的理念夕土。
另外,Spring Boot官方提供了很多的Starter組件,比如Redis怨绣、JPA角溃、MongoDB等等。
但是官方并不一定維護了所有中間件的Starter篮撑,所以對于不存在的Starter减细,第三方組件一般會自己去維護一個。
官方的starter和第三方的starter組件赢笨,最大的區(qū)別在于命名上未蝌。
官方維護的starter的以spring-boot-starter開頭的前綴。
第三方維護的starter是以spring-boot-starter結(jié)尾的后綴
這也是一種約定優(yōu)于配置的體現(xiàn)茧妒。
以上就是我對這個問題的理解萧吠。
總結(jié)
在技術(shù)的學(xué)習過程中,我認為“為什么是” 比 “是什么”要重要桐筏。
以這種方式來學(xué)習纸型,帶來的好處就是對技術(shù)理解會更加深刻。
這道題考察的就是“為什么是”九昧,不難绊袋,關(guān)鍵在于自己的理解。
如果你喜歡這篇文章铸鹰,記得點贊和收藏癌别。
如果想獲得一對一的面試指導(dǎo)以及面試資料,可以私信我蹋笼。