yue-library 2.3.0釋出,替換Db JavaBean轉換方案,效能提升約300%+
阿新 • • 發佈:2021-01-14
yue-library簡介
yue-library是一個基於SpringBoot封裝的增強庫
- 內建豐富的JDK工具
- 自動裝配了一系列的基礎Bean與環境配置項
- 快速構建SpringCloud專案,讓微服務變得更簡單
版本更新日誌
新特性
data-jdbc進行了重大優化,如下:
- 替換Db JavaBean轉換方案,效能提升約300%+
- 優化Convert JavaBean轉換效能
- 優化Convert異常提示,劃分日誌等級
- 過載駝峰轉換方法到Convert類
JDBC實體類對映方案已重構,廢棄了Spring的轉換器方案,這是一次底層改動。我已測試瞭如下場景成功支援:
- 駝峰轉換(自動對映、自動識別boolean is命名)
- JSONObject、JSONArray解析支援
- 支援實體類多set方法存在
新增如下RowMapper:
- BeanPropertyRowMapper,JavaBean對映兩倍有餘Spring原生的效能,支援更多型別對映,支援 JSONField 註解
- ColumnMapRowMapper,轉換 Map 為 fastjson 的 JSONObject
- 【base】優化非同步執行緒池預設配置,完美解決非同步上下文遇到的所有問題(包括併發模式與Servlet提前關閉導致的子執行緒獲取不到引數異常)
- 【base】全域性統一異常處理新增FeignException處理,提供異常訊息格式化構造
- 【base】增強ExceptionUtils,提供多種堆疊列印方式與獲取方式,並優化異常返回錯誤內容
- 【base】Java全域性網路代理配置,允許使用
,
分割(如:localhost|127.*
localhost,127.*
) - 【base】新增R.errorPromptFormat()方法
- 【base】提供最外層HTTP狀態碼503(停機維護)約定
- 【base】新增JsonList駝峰等屬性命名策略多個過載工具方法
- 【base】增強validator校驗框架,支援將
@Valid
註解新增到POJO類上 - 【jdbc】規範排序、比較、預期、列舉,建立比較code定義命名規範類
- 【jdbc】對BaseDO進行駝峰命名規範
- 【jdbc】增強Db WHERE SQL對陣列型別的處理
Bug修復
- 【base】解決@Chinese註解中文漢字校驗,value為空時的NullPointerException
- 【web】HttpMessageConverter選用fastjson時,解析非json格式響應體錯誤 #I2ALJW
Maven倉庫實際釋出版本號
j8.2.3.0
、j11.2.3.0
依賴 | 版本 |
---|---|
spring-boot | 2.3.5.RELEASE |
spring-cloud | Hoxton.SR9 |
spring-cloud-alibaba | 2.2.3.RELEASE |
hutool | 5.4.4 |
fastjson | 1.2.74 |
工程結構
. yue-library
├── yue-library 基礎庫
│ ├── yue-library-dependencies 父pom
│ ├── yue-library-base 基礎庫提供了豐富的Java工具包,同時也自動裝配了一系列基礎Bean等
│ ├── yue-library-base-crypto 基於Hutool實現的加解密模組,提供諸如資料脫敏此類的更多特性
│ ├── yue-library-web 基礎庫WebMvc實現,用於servlet專案
│ ├── yue-library-webflux 基礎庫WebFlux實現,用於響應式程式設計專案(如:SpringCloudGateway)
│ ├── yue-library-data-jdbc 基於SpringJDBC進行二次封裝,擁有著強大效能的同時又不失簡單、靈活等
│ ├── yue-library-data-redis 基於SpringRedis進行二次封裝,更簡單靈活,提供全域性token與登入相關特性等
│ ├── yue-library-auth-service 基於SpringSecurity進行二次封裝,更簡單靈活,提供全域性token與登入等特性
│ ├── yue-library-auth-client auth-client為auth-service客戶端模組,提供獲取當前登入使用者狀態資訊等特性
│ ├── yue-library-pay 基於pay-java-parent進行二次封裝,讓你真正做到一行程式碼實現支付聚合
│ ├── yue-library-cloud-oss
│ └── yue-library-cloud-sms
├── yue-library-samples 基礎庫示例
│ ├── 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共享架構(阿里巴巴中臺)
└── yue
快速開始
引入專案依賴
maven專案,在pom.xml檔案中新增如下一段程式碼,並將${version}
替換為對應版本號:
<parent>
<groupId>ai.ylyue</groupId>
<artifactId>yue-library-dependencies</artifactId>
<version>${version}</version>
</parent>
隨後引入所需要的模組,如WebMvc專案引入:yue-library-web
依賴說明:yue-library-base
為基礎模組,一般情況下不需要單獨引入,如:web、data-jdbc、data-redis等模組皆已預設依賴。
<dependencies>
<dependency>
<groupId>ai.ylyue</groupId>
<artifactId>yue-library-web</artifactId>
</dependency>
...
</dependencies>
啟動專案
新建一個SpringBoot main
方法啟動類:
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(TestApplication.class, args);
}
}
寫一個測試介面:
@RestController
@RequestMapping("/quickstart")
public class QuickstartController {
@GetMapping("/get")
public Result<?> get(JSONObject paramJson) {
return ResultInfo.success(paramJson);
}
}
訪問介面測試,如:http://localhost:8080/quickstart/get
{
"code": 200,
"msg": "成功",
"flag": true,
"count": null,
"data": {}
}
上面的程式碼完全保持了SpringBoot的風格,但又提供了更多特性增強,如:HTTP訊息轉換器對 Alibaba Fastjson 的支援,同時不再區分 query from-data json 等傳參方式,預設也對 跨域、時間格式、異常、引數校驗 等常見坑點進行了本土化處理與特性增強。
收藏一波以表支援吧(≧▽≦)/!
本文由部落格群發一文多發等運營工具平臺 OpenWrite 釋出