yue-library基于 SpringBoot 封裝的基礎(chǔ)庫
yue-library是一個基于SpringBoot封裝的增強庫
- 內(nèi)置豐富的JDK工具
- 自動裝配了一系列的基礎(chǔ)Bean與環(huán)境配置項
- 快速構(gòu)建SpringCloud項目,讓微服務(wù)變得更簡單
介紹
yue-library 是一個基于 SpringBoot 封裝的增強庫,內(nèi)置豐富的 JDK 工具,并且自動裝配了一系列的基礎(chǔ) Bean,不僅如此,還可以用于快速構(gòu)建 SpringCloud 項目,讓微服務(wù)變得更簡單。
工程結(jié)構(gòu)
. yue-library
├── yue-library 基礎(chǔ)庫
│ ├── yue-library-dependencies 父pom
│ ├── yue-library-base 基礎(chǔ)庫提供了豐富的Java工具包,同時也自動裝配了一系列基礎(chǔ)Bean等
│ ├── yue-library-base-crypto 基于Hutool實現(xiàn)的加解密模塊,提供諸如數(shù)據(jù)脫敏此類的更多特性
│ ├── yue-library-web 基礎(chǔ)庫WebMvc實現(xiàn),用于servlet項目
│ ├── yue-library-webflux 基礎(chǔ)庫WebFlux實現(xiàn),用于響應(yīng)式編程項目(如:SpringCloudGateway)
│ ├── yue-library-data-jdbc 基于SpringJDBC進行二次封裝,擁有著強大性能的同時又不失簡單、靈活等
│ ├── yue-library-data-redis 基于SpringRedis進行二次封裝,更簡單靈活,提供全局token與登錄相關(guān)特性等
│ ├── yue-library-auth-service 基于SpringSecurity進行二次封裝,更簡單靈活,提供全局token與登錄等特性
│ ├── yue-library-auth-client auth-client為auth-service客戶端模塊,提供獲取當(dāng)前登錄用戶狀態(tài)信息等特性
│ ├── yue-library-pay 基于pay-java-parent進行二次封裝,讓你真正做到一行代碼實現(xiàn)支付聚合
│ ├── yue-library-cloud-oss
│ └── yue-library-cloud-sms
├── yue-library-samples 基礎(chǔ)庫示例
│ ├── yue-library-test yue-library代碼測試項目:單元測試、接口測試、代碼示例
│ ├── yue-library-test-webflux yue-library-webflux代碼測試項目:單元測試、接口測試、代碼示例
│ ├── yue-library-template-simple yue-library模版:SpringBoot項目模版
│ └── yue-library-template-ssc yue-library模版:SpringCloud項目模版,SOA共享架構(gòu)(阿里巴巴中臺)
└── yue
快速開始
引入項目依賴
maven項目,在pom.xml文件中添加如下一段代碼,并將${version}替換為對應(yīng)版本號:
<parent>
<groupId>ai.ylyue</groupId>
<artifactId>yue-library-dependencies</artifactId>
<version>${version}</version>
</parent>
隨后引入所需要的模塊,如WebMvc項目引入:yue-library-web
依賴說明:yue-library-base為基礎(chǔ)模塊,一般情況下不需要單獨引入,如:web、data-jdbc、data-redis等模塊皆已默認(rèn)依賴。
<dependencies>
<dependency>
<groupId>ai.ylyue</groupId>
<artifactId>yue-library-web</artifactId>
</dependency>
...
</dependencies>
版本說明
yue-library的版本命名方式,繼2.1.0開始采用與SpringBoot和SpringCloudAlibaba相同的命名方式。
yue-library-base為其他模塊的基礎(chǔ)依賴(簡稱基礎(chǔ)庫),所以若需要引入除基礎(chǔ)庫之外的模塊(如:web、data-jdbc、data-redis),可以不引入yue-library-base。
版本區(qū)別說明
| 示例版本 | 區(qū)別說明 |
|---|---|
j8.2.x |
基于Java 8的2.x.x版本 |
j11.2.x |
基于Java 11的2.x.x版本 |
Finchley.x、Greenwich.x、2.1.x |
歷史版本,具體區(qū)分請查看歷史版本文檔 |
默認(rèn)版本依賴關(guān)系
| yue-library | SpringBoot | SpringCloud | SpringCloudAlibaba |
|---|---|---|---|
| 2.1 | 2.1+ | Greenwich | 2.1+ |
| 2.2 | 2.2+ | Hoxton | 2.2+ |
更多細(xì)節(jié),請查看中文文檔
模塊說明
yue-library-base(必備)
yue-library-base提供了豐富的Java工具包,它能夠幫助我們簡化每一行代碼(集成Hutool工具包)。
同時也自動裝配了一系列基礎(chǔ)Bean,可在 application.yml 文件中配置關(guān)閉,所有配置項皆是以yue.*開頭,如:yue.cors.allow=false代表不允許跨域。
- 豐富的Java基礎(chǔ)工具類,對文件、流、加密解密、轉(zhuǎn)碼、正則、線程、XML等JDK方法進行封裝
- 默認(rèn)開啟熱加載、熱部署、支持跨域,一鍵解決聯(lián)調(diào)問題
- 全局統(tǒng)一異常處理基類,結(jié)合
Result對象,定位異常更輕松,前端顯示更貼切 - 異步線程池:共用父線程上下文環(huán)境,異步執(zhí)行任務(wù)時不丟失token
-
ResultHttp最外層響應(yīng)對象,更適應(yīng)Restful風(fēng)格API -
validator參數(shù)校驗器,支持單參數(shù)連寫與POJO對象(注解)校驗等,更多的校驗規(guī)則,更貼切的國內(nèi)校驗場景。(如:手機號、身份證號碼) -
Convert類型轉(zhuǎn)換器,內(nèi)置hutool、fastjson、yue三種類型轉(zhuǎn)換規(guī)則,判斷精確性能強大,未知類型兼容性更強
更多詳細(xì)介紹,請查看中文文檔
yue-library-data-jdbc(強烈推薦)
data-jdbc庫基于SpringJDBC進行二次封裝,擁有著強大性能的同時又不失簡單、靈活。特性如下:
- 比SpringJDBC更方便好用、比SpringJPA更簡單靈活
- 無侵入:data-jdbc 在 SpringJDBC 的基礎(chǔ)上進行擴展,只做增強不做改變,簡化
CRUD操作 - 依賴管理:引入即可啟動項目,關(guān)聯(lián)druid實現(xiàn)SQL全監(jiān)控
- 預(yù)防Sql注入:內(nèi)置Sql注入剝離器,有效預(yù)防Sql注入攻擊
- 損耗小:封裝大量經(jīng)過SQL優(yōu)化處理的CRUD方法,直接面向?qū)ο蟛僮鳎瑢Ρ仍塁RUD處理,性能基本無損耗甚至更優(yōu)
- 通用CRUD操作:內(nèi)置通用 DAO,通過繼承方式即可實現(xiàn)單表大部分 CRUD 操作
- 更科學(xué)的分頁:分頁參數(shù)自動解析,寫分頁等同于寫基本List查詢。更有優(yōu)化型分頁SQL檢查
- 內(nèi)置性能分析插件:可輸出Sql語句以及其執(zhí)行時間,建議開發(fā)測試時啟用該功能,能有效解決慢查詢
- 類型強化:支持原生級SQL查詢,并強化原生查詢結(jié)果,簡單便捷 + 可維護組合(支持全JSON或全DO)
- CRUD校驗:CRUD操作是否符合預(yù)期,更好的避免臟數(shù)據(jù)的產(chǎn)生與違規(guī)操作
- 全局異常處理:CRUD操作相關(guān)異常統(tǒng)一處理,定位更精準(zhǔn),提示更友好,實現(xiàn)全局Restful風(fēng)格
更多詳細(xì)介紹,請查看中文文檔
yue-library-data-redis(推薦)
data-redis庫基于SpringRedis進行二次封裝,更簡單靈活,提供全局token與登錄等特性:
- 簡化使用并擁有Redis原生常用命令所對應(yīng)的方法
- 保留SpringRedis所有常用特性:分布式緩存
- 提供分布式token、分布式鎖
- 封裝大量第三方登錄特性,使登錄更簡單易于維護
- 封裝常用的登錄判斷操作與redis-token解析
更多詳細(xì)介紹,請查看中文文檔
社區(qū)
在Gitter的社區(qū)里可以找到y(tǒng)ue-library的用戶和開發(fā)者團隊。
參與貢獻
歡迎各路好漢一起來參與完善 yue-library,我們期待你的 PR!
- 貢獻代碼:代碼地址 yue-library ,歡迎提交 Issue 或者 Pull Requests
- Fork 本倉庫并從 JDK對應(yīng)的分支或?qū)?yīng)的某個版本 創(chuàng)建你的分支
- 如果你添加的代碼需要測試,請?zhí)砑訙y試,確保單元測試通過(測試代碼請放在:
yue-library-test中)- 如果你修改了 API,請更新文檔
- 確保代碼風(fēng)格一致
- 提交代碼
- 新建 Pull Request
- 維護文檔:文檔地址 yue-library-doc ,歡迎參與翻譯和修訂
