SpringBoot3.x中自定義開發(fā)通用SDK的實(shí)現(xiàn)
1. 前言
相信大家學(xué)習(xí)SpringBoot到現(xiàn)在,使用Maven構(gòu)建項(xiàng)目時(shí),會(huì)在pom.xml
文件中引入各種各樣的依賴,那么我們?nèi)绾螌⒆约撼S玫囊恍┕ぞ哳悗爝M(jìn)行封裝成starter或者SDK供其他項(xiàng)目使用呢,本博客就會(huì)帶著大家一步一步創(chuàng)建自定義的SDK依賴
2. 前置準(zhǔn)備
本博客基于的Java開發(fā)環(huán)境如下:
- JDK17
- SpringBoot3.2.6(SpringBoot2.x的項(xiàng)目此處不適用?。。。?/li>
3. 開發(fā)步驟
3.1 創(chuàng)建項(xiàng)目
此處使用IDEA內(nèi)置Spring Initializr初始化工具快速創(chuàng)建項(xiàng)目:
- 填寫項(xiàng)目配置:
- 設(shè)置SpringBoot版本以及依賴
此處一定要勾選(Spring Configuration Processor依賴)
- 點(diǎn)擊create創(chuàng)建項(xiàng)目即可!
3.2 修改無關(guān)配置
3.2.1 設(shè)置項(xiàng)目版本
將pom.xml
文件中的項(xiàng)目版本改寫成:<version>0.0.1<version>
3.2.2 刪除Maven的build插件
將如下內(nèi)容從pom.xml
文件中刪除
3.2.3 刪除啟動(dòng)類
由于這不是一個(gè)Web項(xiàng)目,因此我們需要將啟動(dòng)類給刪除
3.3 編寫配置類
3.3.1 編寫屬性配置類
例如,下面該類用于讀取配置文件中形如rice.executors.fixedPoolSize=10
的變量
/** * 線程池屬性類 * @author 米飯好好吃 */ @Configuration @ConfigurationProperties(prefix = "rice.executors") @Data public class ExecutorProperties { private int fixedPoolSize; // num of threads }
3.3.2 編寫業(yè)務(wù)類
@Data public class FixedExecutorTemplate { private ExecutorService executorService; public FixedExecutorTemplate(int fixedPoolSize) { this.executorService = Executors.newFixedThreadPool(fixedPoolSize); } public void submit(Runnable task) { this.executorService.submit(task); } }
3.3.3 編寫配置類
該類就用于注入不同的屬性配置類對(duì)象,讀取配置文件中的信息,然后創(chuàng)建出不同的bean實(shí)例供其他項(xiàng)目使用,本質(zhì)就是省去了其余項(xiàng)目手動(dòng)創(chuàng)建的麻煩?。。?/strong>
/** * 項(xiàng)目配置類 * @author 米飯好好吃 */ @AutoConfiguration @EnableConfigurationProperties({ExecutorProperties.class}) public class CommonConfig { @Resource private ExecutorProperties executorProperties; @Bean public FixedExecutorTemplate executorTemplate() { return new FixedExecutorTemplate(executorProperties.getFixedPoolSize()); } }
3.4 設(shè)置配置文件
下面我們還需要給其余項(xiàng)目在application.yml
等文件中給予友好提示,類似于下圖這樣的效果:
詳細(xì)步驟:
- 在 resources目錄下創(chuàng)建
META-INF/spring
兩級(jí)子目錄 - 然后在spring目錄下創(chuàng)建文件名為
org.springframework.boot.autoconfigure.AutoConfiguration.imports
的文件,如果配置無誤應(yīng)該在IDEA中會(huì)有識(shí)別提示:
- 在該文件中配置項(xiàng)目配置類的路徑,例如此處就是:
com.rice.commonsdk.CommonConfig
3.5 使用Maven構(gòu)建成Jar包
接下來我們就可以借助Maven的install命令將項(xiàng)目構(gòu)建成jar包,供其余項(xiàng)目引入:
如果出現(xiàn)以下錯(cuò)誤,說明是測試的問題,只要將項(xiàng)目中的test目錄刪除或者在Maven配置面板中選擇toggle skip test model
選項(xiàng)即可省略執(zhí)行測試的步驟:
構(gòu)建完成后就可以在本地的Maven倉庫目錄找到所在jar包,默認(rèn)路徑為:C:\用戶目錄\.m2\repository\包名
3.6 測試
我們?cè)趧e的項(xiàng)目中就可以引入jar包依賴觀察能夠正常使用:
此處我們也能在pom.xml文件中看到提示了:
編寫控制類測試:
@RestController @RequestMapping("/test") public class ClientController { @Resource private FixedExecutorTemplate fixedExecutorTemplate; @GetMapping("/fixed") public void testFixed() { for (int i = 0; i < 10; i++) { int j = i; fixedExecutorTemplate.submit(() -> { System.out.println(j); }); } } }
到此這篇關(guān)于SpringBoot3.x中自定義開發(fā)通用SDK的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot3.x通用SDK內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中的深拷貝(深復(fù)制)和淺拷貝(淺復(fù)制)介紹
這篇文章主要介紹了Java中的深拷貝(深復(fù)制)和淺拷貝(淺復(fù)制)介紹,需要的朋友可以參考下2015-03-03IDEA生成項(xiàng)目后出現(xiàn)的iml和idea文件問題
這篇文章主要介紹了IDEA生成項(xiàng)目后出現(xiàn)的iml和idea文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08springboot?集成activemq項(xiàng)目配置方法
這篇文章主要介紹了springboot?集成activemq項(xiàng)目配置方法,e-car項(xiàng)目配置通過引入activemq依賴,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-04-04Spring Boot實(shí)戰(zhàn)教程之自動(dòng)配置詳解
Spring Boot的自動(dòng)配置給開發(fā)者帶來了很大的便利,當(dāng)開發(fā)人員在pom文件中添加starter依賴后,maven或者gradle會(huì)自動(dòng)下載很多jar包到classpath中。下面這篇文章主要給大家介紹了關(guān)于Spring Boot自動(dòng)配置的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07Java?synchronized底層實(shí)現(xiàn)原理以及鎖優(yōu)化
Synchronized是Java中解決并發(fā)問題的一種最常用的方法,也是最簡單的一種方法,下面這篇文章主要給大家介紹了關(guān)于Java?synchronized底層實(shí)現(xiàn)原理以及鎖優(yōu)化的相關(guān)資料,需要的朋友可以參考下2022-02-02