日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

SpringBoot之自定義Starter

作者:太自由 更新時間: 2023-12-16 編程語言

目錄

一、自己的理解

1. 理解一

2. 理解二

二、自定義starter(重點)

三、以mybatis-spring-boot-starter為例進行分析

1. 寫好自己的自動配置類邏輯

2. 創建自己的starter項目并引入自動配置類項目的依賴

3. 在其它項目中使用自定義的starter

一、自己的理解

1. 理解一

自定義Starter的常規流程:

(1)自定義一個項目,叫做 xxx-spring-boot-autoconfigure (比如mybatis-spring-boot-autoconfigure), 在這個項目里面寫自定義的配置類:xxxAutoConfiguration ---> xxxProperties,然后在項目的 META-INF/spring.factories文件中把自己的自動配置類配置進去(可以參照其它starter進行配置)從而使得項目啟動自動加載指定的自動配置類;

(2)自定義一個項目,artifactId叫做xxx-spring-boot-starter (比如mybatis-spring-boot-starter)

(3)在(2)中引入(1)的依賴【即starter的pom文件里面引入autoconfigure包】

(4)在其它項目中使用自定義的Starter,就是引入(2)的依賴,然后在自己的配置文件中配置需要和xxxProperties綁定的配置信息,這樣就可以在自己的項目中使用自定義的starter了。

2. 理解二

????????場景啟動器里面沒有源代碼,場景啟動器里面一般只負責在其pom文件里面聲明這個場景啟動器有哪些依賴,同時場景啟動器里面引入了當前場景的自動配置依賴,而在自動配置包里面要引入springboot最底層的,每一個模塊都要引入的spring-boot-starter,如下圖:

二、自定義starter(重點)

? ? ? ? 根據 <理解二>中的圖,自定義一個starter,其詳細步驟如下:

(1) 創建一個空工程,空工程里面可以容納多個項目,如下圖:

?(2)在新的空工程里面創建第一個模塊(場景啟動器starter模塊)

shg-hello-spring-boot-starter 如下圖:

(3)在新工程里面創建第二個模塊(自動配置模塊),如下圖:

?(4)場景啟動器(shg-hello-spring-boot-starter) 里面需要引入 自動配置模塊 (shg-hello-spring-boot-starter-autoconfigure),如下圖:

(5)<自動配置>這個項目不需要啟動,所以不需要主啟動類,也不需要配置文件,可以把多余的東西刪除,如下圖:

?

(6)一個業務場景是這樣的:比如有一個業務方法是<給別人打招呼>,其使用場景是你給我傳入一個姓名,我給你輸出一句問候語,并且這個問候語的格式是<可配置的前綴>+傳入的姓名+<可配置的后綴>。

????????這個業務方法經常被使用,被多個模塊使用,那么我就可以把這個業務方法抽取出來 。如下所示:

(7)在自動配置類的resource下創建?META-INF/spring.factories文件,在此文件中配置EnableAutoConfiguration 的值,這個值指定的就是需要在SpringBoot項目啟動時自動加載的配置類(當然這個配置類生效與否還要看其是否滿足自動配置類的條件),如下:

(8)打包項目并安裝到本地倉庫中

? ? ? ?因為場景啟動器要依賴自動配置包,所以要先打包自動配置包,再打包場景啟動器;如下圖:

?

?

?至此就成功開發了自己的場景啟動器,那么如何在其它項目中進行使用呢?接著看:

(8)新建一個測試項目,在其pom文件引入自定義的場景啟動器,如下:

(9)直接編寫業務方法,進行使用,如下:

?

(10)進行測試:

?

(11) 其它一些想法:

  • 可以給HelloProperties的屬性給定一些默認值,當其它項目使用我們的場景啟動器(自定義starter時)如果沒有在配置文件進行配置值,就使用我們默認給定的值;
  • 條件裝配(比如我們的自動配置類在給容器中添加組件時需要經過一些條件判斷,當滿足某種條件時才給容器中放入某個組件)
  • ...?

三、以mybatis-spring-boot-starter為例進行分析

1. 寫好自己的自動配置類邏輯

說明:自動配置類里面需要的屬性信息和xxxProperties類進行綁定

(1)自定義一個項目,artifactId叫做 <mybatis-spring-boot-autoconfigure>,如下圖:

2. 創建自己的starter項目并引入自動配置類項目的依賴

(2)自定義一個項目,artifactId叫做xxx-spring-boot-starter (比如mybatis-spring-boot-starter)

(3)(2)中引入(1)的依賴【即starter的pom文件里面引入autoconfigure包】,如下圖:

3. 在其它項目中使用自定義的starter

(4)在其它項目中使用自定義的Starter,就是引入(2)的依賴,然后在自己的配置文件中配置需要和xxxProperties綁定的配置信息,這樣就可以在自己的項目中使用自定義的starter了。?

?

原文鏈接:https://blog.csdn.net/qq_23388169/article/details/134768661

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新