在日常開發(fā)中,我們總會遇到一些“每個項目都要做一遍”的重復(fù)性工作:
配 Swagger、Knife4j,手動處理兼容問題;
寫統(tǒng)一響應(yīng)結(jié)構(gòu),封裝
Result<T>;參數(shù)校驗邏輯 scattered everywhere(特別是分組校驗、集合校驗、枚舉校驗);
異常處理、錯誤碼、國際化,總感覺每個項目寫法都不一樣……
于是我決定不再忍了,花時間抽象出一套“開箱即用、標(biāo)準(zhǔn)化、非侵入”的 Spring Boot Starter 框架:
它的名字叫 Solo Framework
GitHub 地址 ?? https://github.com/2500639734/solo-framework
?? 為什么做這個框架?
市面上有很多腳手架或低代碼平臺,但是:
要么太重、侵入性強,需要你改造項目結(jié)構(gòu);
要么功能過多,像 CRM 而不是 SDK;
要么只是把代碼模板抽出來,并不是真正“組件化”地解決問題。
我希望:
? 開發(fā)者可以繼續(xù)使用自己的項目結(jié)構(gòu)
? 只需引入依賴 + 配置,就能獲得統(tǒng)一的開發(fā)體驗
? 可以靈活定制,而不是被框架綁死
于是,我決定動手做一個完全非侵入、模塊化的 Spring Boot 開發(fā)框架。
?? 框架結(jié)構(gòu)設(shè)計
整個框架模塊非常清晰:
| 模塊 | 說明 |
|---|---|
starter-core |
上下文、異常、響應(yīng)封裝 |
starter-web |
Swagger、參數(shù)校驗增強、國際化 |
starter-mts |
MyBatis Plus 自動配置 |
starter-rocketmq |
事務(wù)消息封裝(規(guī)劃中) |
starter-redis |
緩存、分布式鎖支持(規(guī)劃中) |
?? 核心功能一覽
1?? 統(tǒng)一響應(yīng)結(jié)構(gòu)
默認就返回:
{
"code": 0,
"message": "請求成功",
"data": {...},
"traceId": "xxx",
"timestamp": 1726757122136
}
不需要你寫 ResponseEntity,只管返回對象。
2?? 全局異常處理
自動捕獲所有異常(包括
@Validated參數(shù)校驗失敗)自動映射為
ApiResponse自定義業(yè)務(wù)異常只需實現(xiàn)
IErrorCode接口并拋出:
throw new IErrorException(MyErrorCode.USER_NOT_FOUND);
3?? 參數(shù)校驗增強
? 分組校驗(內(nèi)置
CreateGroup/UpdateGroup接口)? 集合參數(shù)校驗(
ValidationList<T>)? 枚舉類型校驗(自定義注解
@EnumPattern)
4?? 國際化支持
內(nèi)置中文和英文資源
錯誤碼與提示信息分離
支持
/set-locale接口動態(tài)切換語言
5?? JSON序列化標(biāo)準(zhǔn)化(FastJson2)
默認日期格式:
yyyy-MM-dd HH:mm:ss忽略 null 字段
支持全局 YAML 配置 / Java 配置類定制
6?? 接口文檔(Swagger + Knife4j)
默認集成,訪問地址:
http://localhost:8080/swagger-ui/index.htmlhttp://localhost:8080/doc.html
?? 快速接入
1?? 在業(yè)務(wù)項目中引入:
<dependency>
<groupId>com.solo.framework</groupId>
<artifactId>solo-framework-starter-web</artifactId>
<version>1.0.0</version>
</dependency>
2?? application.yml 中配置數(shù)據(jù)庫信息(如使用 MyBatis Plus)
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/demo
username: root
password: root
3?? 啟動項目,訪問 Swagger 文檔,開始寫業(yè)務(wù)代碼!
?? 項目地址 & 說明文檔
?? GitHub 地址:
?? https://github.com/2500639734/solo-framework
?? 說明文檔:README 已附帶模塊說明 + 示例代碼 + 快速接入指南。
?? 如果這篇文章對你有幫助:
點贊 ?? 一下,分享給同樣苦惱的同事;
評論 ?? 一下,說說你做過哪些封裝;
Star ? 一下項目,支持作者繼續(xù)維護!