yue-library 2.3.0发布,替换Db JavaBean转换方案,性能提升约300%+
yue-library简介yue-library是一个基于SpringBoot封装的增强库内置丰富的JDK工具自动装配了一系列的基础Bean与环境配置项快速构建SpringCloud项目,让微服务变得更简单版本更新日志新特性data-jdbc进行了重大优化,如下:替换Db JavaBean转换方案,性能提升约300%+优化Convert JavaBean转换性能优化Convert异常提示,划分日志
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 等传参方式,默认也对 跨域、时间格式、异常、参数校验 等常见坑点进行了本土化处理与特性增强。
收藏一波以表支持吧(≧▽≦)/!
更多推荐
所有评论(0)