自定義springboot-starter的應(yīng)用場(chǎng)景

前言

在上一篇文章淺析springboot自動(dòng)配置原理中,我們已經(jīng)清楚知道關(guān)于springboot自動(dòng)配置的實(shí)現(xiàn)原理书聚,但是上一篇并沒有花筆墨去講解如何實(shí)現(xiàn)自定義的starter,原因有兩個(gè)登馒,第一個(gè)是本來代碼已經(jīng)貼太多了点寥,強(qiáng)迫癥的我不愿意再加那么多實(shí)現(xiàn)細(xì)節(jié)的代碼拌喉,第二個(gè)是因?yàn)槲矣X得比較簡(jiǎn)單赊级,各位看官自行g(shù)oogle吧押框。這一篇,咱們來好好討論自定義springboot-starter的應(yīng)用場(chǎng)景理逊。

應(yīng)用場(chǎng)景

場(chǎng)景一:簡(jiǎn)化多服務(wù)公用框架集成橡伞。眾所周知盒揉,springboot或者其他第三方所提供的starter,都是做框架集成兑徘,通過簡(jiǎn)化配置刚盈,提高開發(fā)效率,所以我們自定義starter的第一個(gè)應(yīng)用場(chǎng)景也是基于這個(gè)思路挂脑。那我們?nèi)粘i_發(fā)工作中藕漱,有哪些框架是多個(gè)服務(wù)共用的,并且springboot或者其他第三方暫未提供最域,或者嫌棄第三方寫的太爛谴分,想自己重新實(shí)現(xiàn)的锈麸,都可以通過編寫自定義starter來簡(jiǎn)化工作镀脂。我們公司采用微服務(wù)架構(gòu),每個(gè)服務(wù)都會(huì)使用swagger來生成在線接口文檔忘伞。未封裝swagger-starter之前薄翅,那么在每個(gè)服務(wù)里邊,都需要增加swagger的配置類氓奈。而封裝swagger-starter之后翘魄,可以省去這一步的操作,還可以通過增加自定義配置來實(shí)現(xiàn)一些自定義的功能舀奶。比如我們公司安全部門要求生產(chǎn)環(huán)境不能對(duì)外開放swagger接口文檔地址暑竟,那么我們就可以添加一個(gè)enabled的參數(shù)來代表swagger是否啟用,默認(rèn)啟用育勺,在生產(chǎn)環(huán)境的配置中將enabled設(shè)為false即可達(dá)到這個(gè)目的但荤。類似的額外功能還有很多,比如增加請(qǐng)求頭等等涧至,其他的讀者自行發(fā)掘腹躁。
上面提到的是業(yè)務(wù)無關(guān)性的starter應(yīng)用場(chǎng)景,那么我們拋出一個(gè)問題南蓬,是否有業(yè)務(wù)相關(guān)且多個(gè)業(yè)務(wù)場(chǎng)景或者多個(gè)服務(wù)會(huì)使用的應(yīng)用場(chǎng)景纺非?根據(jù)這個(gè)問題的描述,我們至少可以列出以下幾個(gè)業(yè)務(wù)相關(guān)場(chǎng)景赘方。
場(chǎng)景二:服務(wù)間調(diào)用的鑒權(quán)烧颖。我們公司服務(wù)之間互相調(diào)用需要進(jìn)行鑒權(quán)(還是安全部門的要求),由于服務(wù)間是通過feign來實(shí)現(xiàn)相互調(diào)用窄陡,所以無法通過網(wǎng)關(guān)來進(jìn)行統(tǒng)一鑒權(quán)炕淮。實(shí)現(xiàn)方案是通過新增feign攔截器,在源頭服務(wù)發(fā)起調(diào)用之前增加鑒權(quán)參數(shù)泳梆,請(qǐng)求到達(dá)目標(biāo)服務(wù)后通過鑒權(quán)參數(shù)進(jìn)行鑒權(quán)鳖悠。這兩步操作很明顯是每個(gè)服務(wù)都需要的榜掌,那么這種情況下,我們就可以把這兩步操作封裝成starter乘综,達(dá)到簡(jiǎn)化開發(fā)的目的憎账。同時(shí),我們還可以通過增加配置卡辰,實(shí)現(xiàn)更細(xì)粒度的調(diào)用權(quán)限控制胞皱,比如訂單服務(wù)只能調(diào)用庫存服務(wù)的查詢商品庫存接口,而無法調(diào)用更新商品庫存的接口九妈。
場(chǎng)景三:郵件反砌,短信,驗(yàn)證碼功能萌朱。這些功能宴树,在某些公司可能會(huì)放在common包里,但是這樣其實(shí)會(huì)導(dǎo)致common包的臃腫晶疼,因?yàn)椴⒉皇撬蟹?wù)都會(huì)使用到酒贬。有些公司(還是我們公司)可能對(duì)郵件服務(wù)器的訪問有嚴(yán)格權(quán)限控制的,而且權(quán)限開通流程比較繁復(fù)的翠霍,那么會(huì)考慮做成服務(wù)锭吨,部署在已經(jīng)具有訪問權(quán)限的主機(jī)上,減去重復(fù)申請(qǐng)權(quán)限工作寒匙。如果除去這些限制零如,那么將這些功能封裝成starter還是挺不錯(cuò)的,可以避免common包的臃腫锄弱。
場(chǎng)景四:大愛無疆場(chǎng)景考蕾。看到這個(gè)場(chǎng)景,大家是不是很懵逼棵癣,哈哈哈辕翰。是這樣的,我們小組有位同事特別貼心狈谊,不僅編寫接口喜命,還提供調(diào)用接口的feignclient-starter給需要調(diào)用該接口的同事,starter還包含了相關(guān)請(qǐng)求類以及響應(yīng)類河劝。這已經(jīng)不是可以通過有沒有必要來理性分析的場(chǎng)景了壁榕,雖然我覺得不是很必要,但是我是很支持他這樣做的赎瞎,特別是給我提供接口的時(shí)候牌里,哈哈哈。

總結(jié)

其實(shí)需不需要封裝starter,最終還是根據(jù)技術(shù)架構(gòu)而定牡辽,這里只是對(duì)我遇到的一些場(chǎng)景做一些描述喳篇,讀者如果有別的場(chǎng)景,非常歡迎留言态辛。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末麸澜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子奏黑,更是在濱河造成了極大的恐慌炊邦,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熟史,死亡現(xiàn)場(chǎng)離奇詭異馁害,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蹂匹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門碘菜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人怒详,你說我怎么就攤上這事炉媒∽偾” “怎么了昆烁?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)缎岗。 經(jīng)常有香客問我静尼,道長(zhǎng),這世上最難降的妖魔是什么传泊? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任鼠渺,我火速辦了婚禮,結(jié)果婚禮上眷细,老公的妹妹穿的比我還像新娘拦盹。我一直安慰自己,他們只是感情好溪椎,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布普舆。 她就那樣靜靜地躺著,像睡著了一般校读。 火紅的嫁衣襯著肌膚如雪沼侣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天歉秫,我揣著相機(jī)與錄音蛾洛,去河邊找鬼。 笑死雁芙,一個(gè)胖子當(dāng)著我的面吹牛轧膘,可吹牛的內(nèi)容都是我干的钞螟。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼谎碍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼筛圆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起椿浓,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤太援,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后扳碍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體提岔,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年笋敞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碱蒙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡夯巷,死狀恐怖赛惩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情趁餐,我是刑警寧澤喷兼,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站后雷,受9級(jí)特大地震影響季惯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜臀突,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一勉抓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧候学,春花似錦藕筋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至边翁,卻和暖如春翎承,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背符匾。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工叨咖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓甸各,卻偏偏與公主長(zhǎng)得像垛贤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子趣倾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理聘惦,服務(wù)發(fā)現(xiàn),斷路器儒恋,智...
    卡卡羅2017閱讀 134,628評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評(píng)論 6 342
  • 個(gè)人專題目錄[http://www.reibang.com/u/2a55010e3a04] 一善绎、Spring B...
    Java及SpringBoot閱讀 2,824評(píng)論 1 25
  • 本文來自作者 未聞 在 GitChat 分享的{基于 Docker 的微服務(wù)架構(gòu)實(shí)踐} 前言 基于 Docker ...
    AI喬治閱讀 7,262評(píng)論 0 71
  • 花殤花殤為誰傷,年年荒草掩霓裳诫尽。多少紅粉佳人夢(mèng)禀酱,一朝容顏葬無常。
    楚襄閱讀 261評(píng)論 0 0