Skip to content

Releases: yl-yue/yue-library

j11.2.6.2

28 Mar 13:54
Compare
Choose a tag to compare
  1. 移除yue-library-pay模块,放至里程碑实现
  2. 移除yue-library-data-jdbc模块,放至里程碑实现
  3. 移除yue-library-web-grpc模块,放至里程碑实现
  4. 新增yue-library-data-mybatis模版
  • 底层jdbc模块更换为mybatis-plus,实现数据审计、数据填充、优雅分页、RESTful CRUD

实现多租户与i18n、mybatis-plus默认规范(技术与业务分离)等重量级特性。

新特性

  • 【base】新增多租户与i18n实现,并提供规范文档
  • 【base】RESTfulvalidationexception全面支持i18n国际化
  • 【base】优化默认国际化查找优先级,解决Result toJsonString() 国际化
  • 【base】validation新增相互关系校验@Mutual,互斥关系校验Exclusion
  • 【base】新增相互关系与互斥关系校验器
  • 【base】新增Convert.toJSONString()方法
  • 【base】RESTful响应自动添加链路id
  • 【mybatis】底层jdbc模块更换为mybatis-plus,实现数据审计、数据填充、优雅分页、RESTful CRUD
  • 【mybatis】mybatis新增BaseService,继承后即可获得符合RESTful风格的内置CRUD实现
  • 【mybatis】增强mybatis-plus,实现全局的逻辑删除,不区分xml sql还是内置方法实现
  • 【mybatis】完善相关Mybatis示例、分页示例等
  • 【redis】分布式锁规范与精简
  • 【规约】完善与优化POJO、层级、包名等规约
  • 【规约】阿里云中央仓库启用优化
  • 【template-boot】适配最新版本模版项目

Bug修复

  • 【base】优化SpringUtils工具类,解决由于ApplicationContext还未加载,可能导致的空指针

Maven关键依赖库

👉Maven详细依赖定义见pom.xml文件

依赖库 依赖版本
spring-boot 2.6.11
spring-cloud 2021.0.4
spring-cloud-alibaba 2021.0.4.0
hutool 5.8.11
fastjson 1.2.83

j11.2.6.1

28 Dec 03:28
Compare
Choose a tag to compare

这是一个分水岭版本,从下本版本开始,yue-library将不再注重大而全,而是精简与引领技术栈,会封装常用特性,但不会引入偏门的技术栈,如:grpc。
此类特性会作为脚手架demo提供。

  • 新增grpc模块,但下个版本会移除,变为脚手架demo方式
  • 完善了jdbc框架,提供了优雅SQL编写等诸多能力,但很遗憾下个版本此模块将被移除,以后会改为支持mybatis-plus
  • 删除yue-library-dependencies模块(长期无多大价值),改直接依赖父级yue-library模块

新特性

  • 【base】优化Result类为技术架构请求响应最外层对象,只包含技术架构约定数据,不再包含业务数据
  • 【base】新增异常断言工具类Assert
  • 【jdbc】BaseDAO新增insertAndReturnUuid()方法
  • 【jdbc】修复物理删除时,生成的SQL语句没有WHERE关键字
  • 【jdbc】实现批量新增获取UUID
  • 【jdbc】修复PostgreSQL方言关键字包装"",在参数中滥用导致的兼容bug
  • 【jdbc】新增Sql拼接工具类Sql
  • 【jdbc】规范jdbc注释,更加规范直观,补充完善jdbc文档,更加规范完善,添加示例与规范
  • 【grpc】新增grpc restful全局异常处理
  • 【grpc】新增proto与json互转工具类ProtoUtils

Bug修复

  • 【jdbc】db修复deleteLogic()逻辑删除,缺失delete_time添加追加的bug
  • 【jdbc】修复数据审计表名未进行判空处理,导致的空指针异常

Maven关键依赖库

👉Maven详细依赖定义见pom.xml文件

依赖库 依赖版本
spring-boot 2.6.8
spring-cloud 2021.0.3
spring-cloud-alibaba 2021.0.1.0
hutool 5.7.22
fastjson 1.2.83

j11.2.6.0

10 May 11:05
Compare
Choose a tag to compare

j11.2.6.0【2022-05-09】

  • 主要变更:升级SpringBoot到2.6.x,实现依赖优化与版本控制,加入grpc与plumelog,优化逻辑删除与物理删除分离
  • 主要新特性:数据脱敏、数据审计、数据填充

新特性

  • 【base】移除过期的UUIDUtils,用IdUtils代替
  • 【jdbc】新增数据脱敏特性,请求加密,响应解密
  • 【jdbc】数据脱敏:支持全局密钥配置于表级密钥配置,支持对表中某个字段配置
  • 【jdbc】数据脱敏:支持AES、SM4(国密)、自定义加密机等用于脱敏处理
  • 【jdbc】新增数据审计特性,增删改操作自动记录操作人
  • 【jdbc】数据审计:支持使用配置一键开关需要进行审计的表、支持反向配置不审计的表
  • 【jdbc】数据审计:支持自定义审计字段、审计用户
  • 【jdbc】数据审计:规范数据审计字段命名并增加创建人、更新人、删除人为默认审计字段
  • 【jdbc】新增数据填充特性,用于UUID,租户ID自动填充
  • 【jdbc】数据填充:支持使用配置一键开关需要进行填充的表、支持反向配置不填充的表
  • 【jdbc】数据填充:支持数据新增时填充,数据更新时填充
  • 【jdbc】逻辑删除:完善逻辑删除与物理删除彻底分离,规范逻辑删除方法
  • 【jdbc】新增insertAndReturnUuid()方法:插入时返回uuid
  • 【jdbc】新增insertAndReturnFields()方法:插入时自定义返回需要的字段
  • 【docs】完善jdbc文档,新增配置示例文档、db boolen示例、打印可执行SQL示例、基础的DDL表结构示例、添加Spring JDBC教程
  • 【docs】完善数据库设计与交付规约:数据库枚举规约、多租户介绍
  • 【docs】完善服务端规约:提供IDE配置模板
  • 【docs】完善grpc规约:proto规约、工程结构规范、工程依赖规约、rpc接口版本控制规约
  • 【docs】完善服务端工程结构规约:包名规约、Service/DAO层方法命名规约、POJO领域模型命名规约
  • 【template-boot】优化并完善示例项目,上手更简单直观

Bug修复

  • 【template-boot】修正因SpringBoot2.4版本新的配置文件机制,导致的启动失败 #I40ONA

Maven关键依赖库

👉Maven详细依赖定义见pom.xml文件

依赖库 依赖版本
spring-boot 2.6.3
spring-cloud 2021.0.1
spring-cloud-alibaba 2021.0.1.0
hutool 5.7.22
fastjson 1.2.79

2.4.0

06 Jun 15:28
Compare
Choose a tag to compare
  • 主要变更:使用SpringBoot2.4新的配置文件机制,提供默认的优化配置实现。
  • 主要新特性:使用注解@ApiIdempotent可优雅的实现接口幂等性

新特性

  • 【base】新增@CarDrivingLicence@CarVin@CreditCode@ZipCode四个校验注解
  • 【base】迁移actuator配置至auth模块,添加actuator配置安全
  • 【base】actuator端点默认使用32222端口进行访问,与API服务端口进行区分,保持良好的安全忧患意识
  • 【base】网络代理,额外不代理地址默认添加所有内网网段
  • 【jdbc】完善逻辑删除,delete_time条件追加时判断sql中是否存在delete_time否则不再追加
  • 【redis】新增API接口幂等性优雅实现,使用@ApiIdempotent注解标注接口需要进行幂等性校验
  • 【test】新增模块分离测试
  • 【docs】新增安全规约
  • 【docs】优化异步线程池示例与完善文档
  • 【docs】完善逻辑删除文档
  • 【docs】添加分布式缓存示例与文档
  • 【docs】完善分布式锁与接口幂等性文档
  • 【docs】完善POJO与Lombok的使用说明
  • 【docs】添加类型转换器Bean别名规范
  • 【docs】完善JavaBean参数解析器文档,提示IPO中有无参构造时,解析List类型需传标准是数组字符串
  • 【other】删除部分早已标记为失效的方法

Bug修复

  • 【web】解决SpringBoot2.4版本新出现的跨域问题 #I3OV7B
  • 【web】修复异步线程装饰器在开启ServletAsyncContext时,接口响应被无故追加404异常 #I3HTAW

Maven仓库实际发布版本号

j8.2.4.0j11.2.4.0

关键pom.xml依赖:

依赖 版本
spring-boot 2.4.3
spring-cloud 2020.0.2
spring-cloud-alibaba 2021.1
hutool 5.6.3
fastjson 1.2.76

2.3.3

31 May 01:49
Compare
Choose a tag to compare

2.3.3主要为bug修复与安全加固版本,并优化了大量文档细节

新特性

  • 【base】校验框架提供静态方法Validator.getValidatorAndSetParam(Object param)获取参数校验器,无需bean注入
  • 【base】校验框架实现分组校验与提供默认分组ValidationGroups
  • 【base】新增@CarDrivingLicence@CarVin@CreditCode@ZipCode四个校验注解
  • 【web】迁移RequestParamUtils实现至ServletUtils,并优化参数获取方式
  • 【web】优化ServletUtils内部实现,移除multipart相关类改用hutool提供
  • 【jdbc】从2.3.3开始使用(强依赖)druid进行连接池管理与SQL解析

Bug修复

  • 【base】移除actuator配置
  • 【web】修复异步线程装饰器在开启ServletAsyncContext时,接口响应被无故追加404异常 #I3HTAW

Maven仓库实际发布版本号

j8.2.3.3j11.2.3.3

关键pom.xml依赖:

依赖 版本
spring-boot 2.3.10.RELEASE
spring-cloud Hoxton.SR11
spring-cloud-alibaba 2.2.5.RELEASE
hutool 5.6.3
fastjson 1.2.76

2.3.2

17 Apr 15:17
Compare
Choose a tag to compare

此版本重点实现:密钥交换加解密增强Bean转换能力JDBC新增Elasticsearch-SQL、达梦、PostgreSQL方言

新特性

  • 【base】ParamUtils提示优化,添加错误原因
  • 【base】添加JSONListConverter类型转换器从而支持List<JSONObject>类型处理(JDBC实体数据库查询映射时JSONArray格式文本数据不支持映射成List<JSONObject>
  • 【base】优化fastjson bean转换的jsonstr识别方式
  • 【base】增强DateUtils与规范UUID工具类为IdUtils并优化IdUtils实现
  • 【base】增强fastjson JavaBean转换能力,支持Character类型
  • 【base】MapUtils增强值提取,支持list根据key提取map提取值支持map、fastjson pulls !17
  • 【crypto】新增重磅特性-密钥交换加密:支持@RequestDecrypt注解实现请求自动解密
  • 【crypto】新增重磅特性-密钥交换加密:支持@ResponseEncrypt注解实现响应内容加密
  • 【crypto】密钥交换加密:默认提供本地Map与Redis两种交换密钥存储方案
  • 【crypto】密钥交换加密:@RequestDecrypt@ResponseEncrypt注解支持使用交换密钥加密或自定义密钥等特性
  • 【web】修复ApiVersion注解minimumVersion值等于的情况下410
  • 【web】优化响应结果处理器在标准HTTP状态码时的空值处理
  • 【web】新增ServletUtils.getAuthToken()方法,获取请求中的OAuth2 Token
  • 【webflux】修复ApiVersion注解minimumVersion值等于的情况下410
  • 【jdbc】对jdbc方言实现进行完善与优化,新增Elasticsearch-SQL、达梦、PostgreSQL方言
  • 【jdbc】db.queryForObject 自动识别Bean类型与简单类型
  • 【jdbc】参数美化增强支持JSONArray数据类型与List<JSONObject>数据类型
  • 【jdbc】优化多行查询结果转换为单行查询结果实现
  • 【jdbc】所有mappedClass查询方法自动识别所需RowMapper类型,实现JavaBean、map、基本类型结果自动匹配
  • 【jdbc】规范内部部分常量命名与移除分页中不优雅的泛型实例PageTVO
  • 【jdbc】增强自动方言识别,根据驱动类自动识别所需方言类型
  • 【jdbc】默认Db Bean实现根据不同驱动类型,使用对应方言配置
  • 【jdbc】优化DAO实现,抽象基础DAO
  • 【jdbc】优化所有jdbc方法注释,描述更简洁,表达更清晰,注释更规范
  • 【jdbc】删除早期存在的部分过时方法
  • 【es】支持配置ConnectTimeout与SocketTimeout,并调大各自默认值为25与15秒

Bug修复

  • 【base】修复fastjson JavaBean转换BUG #3688
  • 【jdbc】修复isDataSize()方法可能因为数据库存在多行数据,而返回false的隐患
  • 【jdbc】修复因错误测试而删除的参数类型美化(现已支持:Character、JSONObject、LocalDateTime进行特殊转换处理与布尔值映射识别)

Maven仓库实际发布版本号

j8.2.3.2j11.2.3.2

关键pom.xml依赖:

依赖 版本
spring-boot 2.3.8.RELEASE
spring-cloud Hoxton.SR10
spring-cloud-alibaba 2.2.5.RELEASE
hutool 5.6.3
fastjson 1.2.76

2.3.1

17 Feb 16:25
Compare
Choose a tag to compare

新特性

-【all】规范Redis、异步线程池枚举命名
-【jdbc】DAO中新增基于业务键的删、改、查方法,并建议使用:可避免主键ID被遍历风险
-【jdbc】优化delete方法为行数确认安全删除机制
-【jdbc】对依赖于主键ID作为唯一键进行删、改、查的方法添加有序主键可遍历安全风险提示(可能存在数据越权行为),并推荐使用业务唯一键
-【jdbc】默认开启动态数据源的sql打印
-【jdbc】全面接入参数类型美化(现已支持:Character、JSONObject、LocalDateTime进行特殊转换处理)
-【jdbc】实现布尔类型识别与is命名规约识别
-【jdbc】新增支持识别单行数据进行简单数据类型映射(如:String)
-【web】新增支持使用FastJson做HTTP消息转换器时按照属性声明顺序进行序列化排序
-【web】更改HTTP消息转换器默认配置将 Null Boolean 输出为 false

Bug修复

-【web】解决@RequestMapping中指定produces为xml类型时,JavaBean转换会去解析xml内容BUG #I2ALJW
-【web】解决获取request、response空指针,改为返回null
-【jdbc】优化DbBase与Dialect相互依赖设计,实现Db.clone()深度克隆并解决DbBase与Dialect相互依赖造成的成员变量(JdbcProperties)初始化null异常
-【jdbc】解决spring-cloud-stream启动时循环调用DbBase的equals()方法错误
-【jdbc】修改jdbcQueryBoolean返回类型错误
-【jdbc】修复JdbcProperties默认未注入问题

Maven仓库实际发布版本号

j8.2.3.1j11.2.3.1

关键pom.xml依赖:

依赖 版本
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

2.3.0

10 Jan 10:18
Compare
Choose a tag to compare

2.3.0【2021-01-10】

点击查看版本更新日志

Maven仓库实际发布版本号

j8.2.3.0j11.2.3.0

解释:j8对应Java 8,详情查看版本区别说明

关键依赖版本定义:

依赖 版本
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

点击查看更多依赖版本定义

新特性

data-jdbc进行了重大优化,如下:

  1. 替换Db JavaBean转换方案,性能提升约300%+
  2. 优化Convert JavaBean转换性能
  3. 优化Convert异常提示,划分日志等级
  4. 重载驼峰转换方法到Convert类

JDBC实体类映射方案已重构,废弃了Spring的转换器方案,这是一次底层改动。我已测试了如下场景成功支持:

  1. 驼峰转换(自动映射、自动识别boolean is命名)
  2. JSONObject、JSONArray解析支持
  3. 支持实体类多set方法存在

新增如下RowMapper:

  1. BeanPropertyRowMapper,JavaBean映射两倍有余Spring原生的性能,支持更多类型映射,支持 JSONField
    注解
  2. 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

2.2.0

08 Oct 16:42
Compare
Choose a tag to compare

2.2.0【2020-10-09】

点击查看版本更新日志

Maven仓库实际发布版本号

j8.2.2.0j11.2.2.0

解释:j8对应Java 8,详情查看版本区别说明

新特性

此版本主要实现HttpServletRequest输入流可反复读取,重点解决全局异常捕获(包括过滤器中的异常)问题,规范Restful处理让body中的code值与http状态码保持一致。此版本关键依赖定义如下:

依赖 版本
spring-boot 2.2.5.RELEASE
spring-cloud Hoxton.SR3
spring-cloud-alibaba 2.2.1.RELEASE
hutool 5.3.10
fastjson 1.2.73

点击查看更多依赖版本定义

  • 【base】标准了Result构建与使用(废弃ResultInfo类,添加R类进行Result构建),错误提示使用:R.errorPrompt("用户名或密码错误")R.errorPrompt("验证码错误")
  • 【base】Java全局网络代理封装,简化配置与操作(开启全局代理、获取代理配置、临时设置全局代理、取消全局代理等)
  • 【web】提供RepeatedlyReadServletRequestWrapper过滤器,传递输入流可反复读取的HttpServletRequest
  • 【web】解决全局异常捕获与HTTP状态码同步,并捕获404、405等异常
  • 【web】提供Array数据结构参数解析器ArrayArgumentResolver
  • 【webflux】解决全局异常捕获与HTTP状态码同步,并捕获404、405等异常
  • 【jdbc】提供jdbc逻辑删除数据剔除查询
  • 【jdbc】支持JavaBean中存在多个setMethod方法
  • 【jdbc】在JavaBean中调用setMethod方法设置JSONObject类型value时进行额外解析处理
  • 【jdbc】克隆Db支持
  • 【jdbc】JdbcTemplate支持,提供queryXX单参数类型方法
  • 【es】新增es模块,提供es rest便捷配置与es sql配置

Bug修复

  • 【redis】hashMap 序列化采用Object

2.1.0

06 Aug 14:26
Compare
Choose a tag to compare

2.1.0

点击查看版本更新日志

2.1.0【2020-08-08】

新特性

基于全新的spring-cloud-alibaba体系封装改造,拆分独立的OAuth认证体系,对webmvc、webflux分开支持。依赖定义如下:

依赖 版本
spring-boot 2.1.10.RELEASE
spring-cloud-alibaba 2.1.2.RELEASE
spring-cloud Greenwich.SR5

点击查看更多依赖版本定义

  • 【base】提供yml默认配置支持,一键解决常规坑点困扰(如:时间格式化、可执行SQL打印、接口定义打印等),更适合国内标准
  • 【base】@ApiVersion 注解可优雅的实现接口版本控制,只为更好的Restful
  • 【web】实用的参数解析器(解决参数获取困扰,不再区分Query传参与Body传参,Request请求参数智能解析),并提供RequestParamUtils工具类适用于各种环境下获取请求参数
  • 【web】HTTP消息转换器增强,fastjson与jackson一键切换
  • 【redis】规范redis包名标准,分离OAuth认证体系
  • 【redis】提供可配置的Redis存储对象序列/反序列化器
  • 【jdbc】遵守Java开发手册命名规约,Service/DAO 层方法命名规约,优化如获取单个对象采用 get 做前缀
  • 【jdbc】提供友好的方言支持,为适配国产化数据库打下基础
  • 【jdbc】提供业务主键支持
  • 【jdbc】提供字段命名策略支持
  • 【jdbc】提供逻辑删除支持
  • 【jdbc】提供获得表元数据支持

Bug修复

  • 【jdbc】批量插入容易报错问题