springboot自定義starter
阿新 • • 發佈:2020-07-22
目錄
springboot 自定義 starters
思路:
1、這個場景需要使用到的依賴是什麼?
2、如何編寫自動配置?
1、模式
建立2個maven專案。
- 啟動器(starter)
- 啟動器模組是一個空的jar包,它僅提供輔助性依賴管理,這些依賴可能用於自動裝配,或者其他類庫。
- 自動配置模組(autoconfigure)
- 啟動器依賴的自動配置。這樣別人只需要引入(starter)即可。
2、命名
官方命名是:spring-boot-starter-xxx
我們自定義用:xxx-spring-boot-starter
3、快速開始
- 3.1、 建立一個空的project
使用maven初始化器建立一個maven模組:
使用spring initializr建立一個springboot模組:
不選中任何模組,可以選擇springboot的版本,這裡使用的是預設的版本:
專案結構:
在啟動器模組,引入自動配置的座標依賴:
把沒用的目錄結構都刪掉,最終編寫前比較整潔的目錄結構:
- 3.2、編寫業務場景
- 編寫xxProperties配置類,並用@ConfigurationProperties註解標註。
這裡爆紅無影響。
相當於寫了屬性,用來繫結配置檔案中的: zxx.hello.prefix
zxx.hello.suffix
。
- 編寫需要用到這個配置類的xxService,同時要為這個xxService定義一個包含xxProperties的構造器。
- 要讓它起效果,還需要編寫一個自動配置類。
- 在 resources資源目錄下新建 /META-INF/spring.factories 檔案,它會在springboot專案啟動時,載入上面的自動配置類,這樣才生效。
- 把這2個模組,安裝到maven倉庫中,這樣別人就可以通過座標來引入了:
4、測試
- 新建一個demo專案,選中web模組:
- 引入我們自己定義的starter:
<dependency> <groupId>com.zxx.starter</groupId> <artifactId>zxx-spring-boot-starter</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
這時我們就可以看到,此時的依賴已經引入到我們的demo工程裡了:
- 寫一個controller測試一下:
在application.properties配置檔案中配置:
瀏覽器中訪問: