中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot手寫一個自己的starter源碼

發布時間:2020-09-24 02:59:06 來源:腳本之家 閱讀:185 作者:laozhang 欄目:編程語言

springboot的最強大的就是那些xxxAutoconfiguration,但是這些xxxAutoConfiguration又依賴那些starter,只有導入了這些場景啟動器(starter),我們很多自動配置類才能有用,并且還會新增一些功能,這次就來一起寫個簡單的starter,來看看內部到底是什么原理!

腦中大概有個印象:我們要用一個場景(比如web),直接導入下圖所示的依賴,但是在jar包里面去看這個,你會發現里面只有一些基本的配置文件,什么類都沒有,就能夠想到這個一類就類似一個公司前臺的作用,通過這個公司前臺,能夠聯系到公司內部。

springboot手寫一個自己的starter源碼

提前準備:必須要有IDEA模塊化創建項目的基本操作,其他的隨意。

溫馨提醒:對于會用模塊的小伙伴,其實這里就是創建一個空項目,里面新建一個maven模塊,一個springboot模塊,springboot坐標丟到maven的pom里面,再刪除一些多余的文件和依賴。

1.創建一個空的項目

  springboot手寫一個自己的starter源碼

 

然后就會跳出下圖這個頁面

springboot手寫一個自己的starter源碼

springboot手寫一個自己的starter源碼

springboot手寫一個自己的starter源碼

springboot手寫一個自己的starter源碼

 

上面相當于前臺創建好了,下面開始創建真正的東西了,繼續創建模塊

springboot手寫一個自己的starter源碼

springboot手寫一個自己的starter源碼

springboot手寫一個自己的starter源碼

springboot手寫一個自己的starter源碼

springboot手寫一個自己的starter源碼

  

兩個模塊創建好了之后,將這兩個模塊聯系起來(廢話,公司前臺肯定要有和上級的的通話方式啊)

springboot手寫一個自己的starter源碼

 

導入依賴之后就是這樣的

springboot手寫一個自己的starter源碼

 

下一步就是在xxxautoconfiguration模塊,刪除一些沒用的東西和依賴,但是一定要保留一個最基本的starter

springboot手寫一個自己的starter源碼

springboot手寫一個自己的starter源碼

到這里,基本的準備工作已經完成(其實會用模塊式的直接能跳到這里來)

記住:xxxstarter是前臺,只是起到一個聯系作用(所以我們基本不配置這個),沒有什么其他功能,但是那個xxxautoconfiguration才是內部有實權的老板

現在我們來做個老板出來,嘿嘿嘿!

下面看我的目錄結構

springboot手寫一個自己的starter源碼

 從頭到尾看一下這些類里面有什么

第一個:HelloProperties

springboot手寫一個自己的starter源碼

第二個:HelloWorld(記住,此時這個類和properties類還沒什么關系,必須要讓第三方傳入properties)

springboot手寫一個自己的starter源碼

第三個HelloWorldAutoconfiguration

springboot手寫一個自己的starter源碼

第四個.spring.factories文件

springboot手寫一個自己的starter源碼

最后一步:把這兩個安裝到maven本地倉庫(記得,先是xxautoconfiguration,然后再starter)

springboot手寫一個自己的starter源碼

另外一個starter一樣的操作

到此為止,一個簡單的HelloWorid的starter就做出來了,我們只需要在我們的項目中導入那個starter(也就是前臺唯一的作用)的依賴,就可以了,看看我的starter的坐標(還要記住,properties文件配置的@ConfigurationProperties(prefix = "wyq.hello"),這個prefix是可以在我們項目里面配置文件配置屬性的哦~~)

springboot手寫一個自己的starter源碼

 測試:

file------>new------->project,和以前用springboot一樣,隨便新建一個springboot應用(記住,一定要選擇web模塊,不然自動配置類作用,因為配置了@ConditionalOnWebApplication),導入上圖的依賴

springboot手寫一個自己的starter源碼

springboot手寫一個自己的starter源碼

springboot手寫一個自己的starter源碼

隨便寫個controller測試一下

springboot手寫一個自己的starter源碼

測試成功

  springboot手寫一個自己的starter源碼

到此結束,是不是覺得starter也就這樣啊,挺好玩的一個東西,而且最重要的是這種設計的模式有點厲害!通過這樣的設計,居然能夠實現自動配置,果然是學海無涯啊,要不斷的學習別人前輩造就出來的成果,站在巨人的肩膀上學習,我們才能走得更遠啊!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肇州县| 紫阳县| 永川市| 彰化县| 栾川县| 锡林郭勒盟| 达州市| 霞浦县| 秭归县| 额济纳旗| 静海县| 同仁县| 临武县| 金山区| 邮箱| 苍山县| 永福县| 景宁| 辽阳县| 获嘉县| 渝中区| 奉化市| 莱州市| 保靖县| 个旧市| 宣威市| 永善县| 青海省| 英吉沙县| 迭部县| 绥德县| 泸州市| 信宜市| 象山县| 库尔勒市| 巩留县| 当阳市| 扬州市| 肃宁县| 临桂县| 隆德县|