Skip to content

Releases: ballcat-projects/ballcat

v1.4.2

13 Apr 05:53
Compare
Choose a tag to compare

♿ token service 解析异常时,响应状态码改为 500,而不是 401

v1.4.1

24 Oct 05:00
Compare
Choose a tag to compare

✨ 添加 DistributedLock 在获取锁失败时可以进行自旋重试的能力。
@Cached 注解默认进行 3 次自旋尝试,可通过属性 retryCount 进行修改。

v1.4.0

31 May 00:59
Compare
Choose a tag to compare

[1.4.0] 2023-05-31

💛 Warning

  • TraceId 过滤器从日志模块迁移到了 ballcat-spring-boot-starter-web 模块中
  • TraceId 请求响应头的 name 修改为可配置,默认值为 X-Trace-Id,之前为 traceId,注意调整代码或修改配置(ballcat.web.trace-id-header-name)

⭐ Features

日志模块

  • ✨ (Log) 新增 ballcat.log.access.filter-order 用于配置访问日志的过滤器优先级,默认值 -1000
  • 🎨 (Log) 默认的访问日志处理器,抽取请求响应体是否应该记录的判断方法,方便用户继承重写
  • ♻️ 重构 TraceId 相关代码
    • 迁移 TraceIdFilter 到 web 模块中
    • TraceId 先从请求头中读取,没有的话再进行生成
    • TraceId 响应头的 name 修改为可配置,默认值为 X-Trace-Id
    • 抽取 TraceIdGenerator 接口,方便用户覆盖默认的 TraceId 生成逻辑

OAuth2

  • ⚡ 优化资源所有者授权模式登陆时的错误提示信息

业务模块

  • ✏️ 错别字修正,登陆 -> 登录

🔨 Dependency

  • ⬆️ bump easyexcel from 3.1.5 to 3.3.2

v1.3.0

24 May 02:11
Compare
Choose a tag to compare

[1.3.0] 2023-05-23

💛 Warning

  • 修改了 user 表中的字段名称, 使其更具规范性,sex -> gender, phone -> phone_number
  • 修改了所有业务表的主键 id 类型,从 integer 调整为 long 类型

⭐ Features

通用模块

涉及模块:ballcat-common-coreballcat-common-modelballcat-common-util

  • ✨ 添加系统命令执行工具类
  • ✨ 添加等待队列, 无限等待至队列中存在值
  • ✨ 添加线程池工具类
  • ✨ 添加布尔工具类
  • ✨ 添加StopWatch用于计算执行耗时
  • ⚡ 切换动态定时器队列到线程安全队列

OAuth2

  • ✨ (OAuth2) 抽象资源所有者授权模型,方便用户扩展登陆方式
  • 🐛 (OAuth2) fix refresh token 未持久化导致无法使用的问题
  • ⚡ 允许用户仅通过实现 OAuth2TokenResponseEnhancer 接口进行覆盖默认 Token 响应增强的行为
  • ⚡ 补充登陆时返回的用户信息,额外返回手机号、邮箱、性别

数据权限

涉及模块:ballcat-spring-boot-starter-datascope

  • ✨ (数据权限) DataPermissionUtils#executeWithDataPermissionRule 支持返回值

钉钉通知

涉及模块:ballcat-extend-dingtalk

  • ✨ 添加钉钉负载发送类

GRPC

涉及模块:ballcat-spring-boot-starter-grpc

  • ✨ 添加 grpc starter 模块

业务模块

  • 🐛 (System) 修复组织架构返回未按sort字段进行排序的问题 (#252)
  • (System) 增加角色code检测,防止新增已存在的code时直接返回数据库异常 (#253)
  • ♻️ 所有业务表主键修改为 Long 类型
  • ♻️ sys_user 表中 sex 字段改为 gender, phone 改为 phone_number

🔨 Dependency

  • ⬆️ spring-boot from 2.7.11 to 2.7.12
  • ⬆️ bump flatten-maven-plugin from 1.3.0 to 1.5.0
  • ⬆️ bump maven-compiler-plugin from 3.10.1 to 3.11.0
  • ⬆️ bump maven-resource-plugin from 3.3.0 to 3.3.1
  • ⬆️ bump maven-release-plugin from 3.0.0-M7 to 3.0.0
  • ⬆️ bump maven-javadoc-plugin from 3.4.1 to 3.5.0
  • ⬆️ bump maven-source-plugin from 3.2.1 to 3.3.0
  • ⬆️ bump spring-javaformat-maven-plugin from 0.0.38 to 0.0.39
  • 📌 remove s3-transfer-manager, s3-transfer-manager is released and can manage it with s3-bom

v1.2.0

11 May 02:08
Compare
Choose a tag to compare

[1.2.0] 2023-05-10

💛 Warning

  • 移除了 ballcat-auth 模块以及所有 spring-security-oauth2 的相关代码

⭐ Features

  • 🎨 授权服务器和资源服务器配置切换到 SecurityFilterChain
  • 🔥 移除授权服务器中的 AuthenticationManagerConfiguration
  • ⚡ (OAuth2) 密码模式改为直接使用 DaoAuthenticationProvider 进行认证操作,避免 AuthenticationManagerProvider 之间的循环依赖
  • ✨ (OSS) 新增 ballcat.oss.chunked-encoding 配置,用于控制是否进行分块传输,默认为 false (#250)

v1.1.0

25 Apr 05:38
Compare
Choose a tag to compare

[1.1.0] 2022-04-24

💛 Warning

  • 数据权限中 DataScope 不兼容更新,getTableNames 修改为 includes

  • Redis 组件中的 ballcat.redis.locked-time-out 配置修改为ballcat.redis.default-lock-timeout 并修改默认值为 10s

  • spring-javaformat 新版本优化了链式调用代码的格式化,更新后重新 format 代码,会导致大量文件更新。

  • 授权服务器的登录验证码开关默认值切换为 false,开启了验证码校验的注意修改对应配置为 true.

  • ballcat-admin-core 模块不再默认开启资源服务器的配置,需要用户在自己的配置类上手动添加 @EnableOauth2ResourceServer 注解。

  • ballcat-admin-core 不再传递授权服务器的依赖,用户根据自己的需要在配置类上添加对应的注解,以及 pom.xml 中引入对应的依赖:

    • 切换到 spring authorization server

            <!-- 基于 spring authorization server 的授权服务器 -->
          <dependency>
              <groupId>com.hccake</groupId>
              <artifactId>ballcat-spring-security-oauth2-authorization-server</artifactId>
          </dependency>

      添加注解 @org.ballcat.springsecurity.oauth2.server.authorization.annotation.EnableOauth2AuthorizationServer

    • 或者继续使用 spring-oauth2

               <!-- 已废弃,基于 spring oauth2 的授权服务器 -->
           <dependency>
               <groupId>com.hccake</groupId>
               <artifactId>ballcat-auth-controller</artifactId>
               <scope>provided</scope>
           </dependency>

      添加注解 @com.hccake.ballcat.auth.annotation.EnableOauth2AuthorizationServer

  • spring authorization server 的登陆和退出端点变更为 /oauth2/token/oauth2/revoke,请求方式也略有不同,请注意同步前端更新

⭐ Features

全局

  • 🔥 移除 dynamic-datasource 和 jasypt 等未在 ballcat 仓库中直接使用的第三方工具的版本管理
  • ✨ 版本统一由ballcat-dependencies模块管理,顶级父工程不再重复管理
  • 🚨 处理部分 SonarLint Error

OAuth2 授权服务器

涉及模块:ballcat-spring-security-oauth2-authorization-server

  • ✨ 使用 accessTokenResponseHandler 方式配置 token 增强,方便作用于所有的 grant_type
  • ⚡ 授权服务器的登录验证码开关默认值设置为 false
  • ✨ 提供默认的 BallcatOAuth2TokenCustomizer,方便做远程 token 自省
  • ✨ (授权服务器) 不再自动配置,改为使用 @EnableOauth2AuthorizationServer 注解显式开启
  • ✨ 添加 AnonymousForeverAuthenticationProvider,用于在使用错误 token 的访问资源时不终止流程,而是切换身份到匿名用户访问
  • ✅ (OAuth2) 添加授权服务器部分功能的单元测试
  • ✨ 提供了 OAuth2AuthorizationObjectMapperCustomizer 类,方便用户扩展 OAuth2Authorization 的序列化逻辑

OAuth2 资源服务器:

涉及模块:ballcat-spring-security-oauth2-resource-server

  • ⚡ (资源服务器) 远程不透明令牌自省器从 nimbus 实现迁移到 spring 实现,并移除 nimbus 依赖
  • ⚡ (资源服务器) 优化远程自省时解析的 attributes,只保留必要属性
  • ⚡ 删除手动指定鉴权管理器操作,开启资源服务器后默认会创建

后台管理模块

  • 🐛 fix 角色分页查询条件错误添加了 code 的问题

通用模块

涉及模块:ballcat-common-coreballcat-common-modelballcat-common-util

  • ♻️ BooleanEnum 重构, 同时管理 boolean 类型和对应的 int 类型值, 使用包装类, 方便与包装类进行 equals 判断, 避免拆箱的空指针
  • ♻️ 重载部分R对象方法
  • 🎨 精简依赖范围 ballcat-common-util 的依赖 hutool-extra 缩小为 hutool-core
  • ✨ 添加 array 工具类
  • ✨ 添加https部分静态实现
  • 🐛 修复 AbstractQueueThread 线程被中断的情况下, 未正确调用 shutdown 方法的问题
  • ⚡ 补充部分工具类
  • ✨ 添加spring 环境工具类
  • ✨ 添加LocalDateTime工具类
  • ⚡ markdown支持代码写入
  • ✨ 添加指定动态休眠的定时器

脱敏工具

涉及模块:ballcat-common-desensitize

  • ⚡ Holder 中的数据存储从静态常量修改为实例属性
  • ✅ 修复在不同顺序下执行测试用例导致结果不同的问题

IP 组件

涉及模块:ballcat-spring-boot-starter-ip2region

  • ✨ Ip工具类添加两个静默查询方法

Redis 组件

涉及模块:ballcat-common-redisballcat-spring-boot-starter-redis

  • ✨ 缓存锁添加几个超时时间的重载方法,方便用户自己控制锁释放时间
  • ♻️ 分布式锁使用spring内置断言替代hutool断言
  • ballcat.redis.locked-time-out 配置修改为ballcat.redis.default-lock-timeout 并修改默认值为 10s
  • ⚡ CacheLock 类移动到 lock 包下,同时移除内部 redisTemplate 的引用,改为使用 RedisHelper
  • ✨ redis 支持对redis的新增、修改、删除、过期的监听

数据权限

涉及模块:ballcat-spring-boot-starter-datascope

  • ✨ 新增 DataPermissionUtils#executeAndIgnoreAll 方法,方便忽略数据权限进行方法执行

  • 💥 DataScope 使用 includes 方法替换原 getTableNames 方法,以便支持更加多元化的方式来判断是否需要控制当前表

mybatis

涉及模块:ballcat-extend-mybatis-plus

  • ✨ LambdaQueryWrapperX#isPresent 添加对 Optional 和 Map 的判空支持

NTP 服务

涉及模块:ballcat-extend-ntp

  • ✨ 添加ntp模块, 添加 NtpCn 类便于国内使用

钉钉通知

涉及模块:ballcat-extend-dingtalk

  • ⚡ 钉钉消息发送模块请求工具转为okhttp
  • 🐛 修复 MarkDown 引用文本换行异常
  • ⚡ MarkDown 添加支持多行引用文本的方法
  • ✅ 添加钉钉消息发送测试用例

🔨 Dependency

  • ⬆️ commons-net from 3.8.0 to 3.9.0
  • ⬆️ springdoc-openapi from 1.6.13 to 1.7.0
  • ⬆️ spring-boot from 2.7.6 to 2.7.11
  • ⬆️ easyexcel from 3.1.2 to 3.1.5
  • ⬆️ hutool from 5.8.10 to 5.8.16
  • ⬆️ mybatis-plus from 3.5.2 to 3.5.3.1
  • ⬆️ spring-authorization-server from 0.4.0 to 0.4.2
  • ⬆️ spring-javaformat from 0.0.35 to 0.0.38
  • ⬆️ xxl-job from 2.3.1 to 2.4.0
  • ⬆️ lombok from 1.18.24 to 1.18.26
  • ⬆️ ip2region from 2.6.6 to 2.7.0

v1.0.3

05 Dec 02:38
Compare
Choose a tag to compare

[1.0.3] 2022-12-05

💛 Warning

此版本移除了 ballcat 的 pom 中配置的 maven resource filter 控制,会导致 application.yml 中的 @profiles.active@
等占位符无法正确解析替换,注意在自己项目的 pom.xml 中添加对应的 maven resource filter 配置。

配置方式参看: Maven 占位符配置

⭐ Features

全局

  • 🔥 移除 ballcat pom.xml 中对于 maven resource 的过滤配置,交由项目自己控制
  • 🚨 fix some java doc warning
  • 👷 明确指定 maven-surefire-plugin 插件的版本以及执行的字符集为 UTF-8
  • 👷 取消 maven 编译插件编译时跳过 test class 的配置
  • ✅ 修复单元测试在 maven test 命令时不执行或者执行报错的问题

定时任务组件

涉及模块:ballcat-spring-boot-starter-job

  • 🐛 (定时任务) 修复xxl-job执行器存在默认名称导致自动注册spring应用名失败

IP 组件

涉及模块:ballcat-spring-boot-starter-ip2region

  • 🐛 修复用户在启用资源过滤的情况下 ip2region 数据文件损坏的问题

Redis 组件

涉及模块:ballcat-common-redisballcat-spring-boot-starter-redis

  • ⚡ 明确指定下 Ballcat Redis 自动配置的顺序,需要在 spring-boot 的自动配置之前
  • 🐛 修复 RedisHelper#setExAt 的过期时间设置不正确的问题
  • 🐛 修复 RedisHelper#incrByAndExpire 序列化异常与 lua 脚本错误问题

数据权限

涉及模块:ballcat-spring-boot-starter-datascope

  • ✨ 添加只有 JOIN 关键字的连表 sql 处理支持
  • 🐛 修复在排除部分 DataScope 后剩余的 DataScope 没有匹配中当前 sql,导致后续不排除 DataScope 再执行时跳过了数据权限的问题
  • 🐛 修复在 DataScope 内部又进行了 SQL 查询导致数据权限控制递归调用时,导致的空指针问题

Excel 组件

涉及模块:ballcat-spring-boot-starter-easyexcel

  • ✨ Excel 导出支持动态 sheet 数量,不必指定 sheet 属性
  • ✨ Excel 导出支持指定 fill 填充模式
  • ⚡ 添加 @ResponseExcel 导出的校验:fill 属性必须配合 template 使用
  • ✨ 添加 EmptyHeadGenerator 组件,用来忽略 excel 头生成
  • 🎨 Excel 导出部分过期方法替换
  • 🐛 修复 Excel 导出名称有空格时变成 + 号的问题
  • ✅ 添加 Excel 基础功能的测试方法
  • ✅ 添加导出时不写入头信息的单元测试用例

🔨 Dependency

  • ⬆️ hutool from 5.8.9 to 5.8.10
  • ⬆️ ip2region from 2.6.5 to 2.6.6
  • ⬆️ s3 from 2.18.6 to 2.18.20
  • ⬆️ spring-boot from 2.7.5 to 2.7.6
  • 📌 spring-authorization-server from 0.4.0-M2 to 0.4.0

v1.0.1

17 Nov 12:49
Compare
Choose a tag to compare

[1.0.1] 2022-11-16

💛 Warning

此版本移除了 @EnableAccessLog@EnableOperationLog 注解,访问日志和操作日志将默认启用,用户可以使用
ballcat.log.access.enabled=falseballcat.log.operation.enabled=false 配置来进行关闭

⭐ Features

  • ✨ (Log) 使用配置替换注解来控制日志的开启和关闭
  • 🐛 修复 MdcTaskDecorator 清除子线程 MDC 上下文时机不对
  • 🐛 修复 LambdaAliasWrapper 构建嵌套条件时,生成的 SQL 条件对应值为 null 的问题
  • 🔥 删除 AbstractIdTreeNode,防止用户使用不当造成一些一场问题

1.0.0

09 Nov 02:53
Compare
Choose a tag to compare

[1.0.0] 2022-11-08

💛 Warning

  • ballcat-auth 相关组件标记为过期,授权服务器将于下个版本切换到 spring-authorization-server
  • OAuth2 授权码流程现在使用无状态登录,需要配合前端页面改动(注意升级前端页面)
  • OssClient 过期,现在推荐使用 OssTemplate 组件
  • oss 移除 domain 属性配置,可用 endpoint 属性配置替代,endpoint 属性配置兼容端点与自定义域名
  • oss endpoint 属性配置需配置协议头,例如:http://s3-cn-east-1.qiniucs.com
  • oss 移除 rootPath 属性配置(可用 object-key-prefix 属性配置替代)
  • xxl-job 相关配置添加前缀 ballcat
  • 日志组件的配置现在默认集成到 ballcat-admin-core 中,在不修改的默认实现的情况下无需自己添加配置类了
  • ballcat-common-security 组件移除,部分类的包名有变动
  • 验证码组件切换到了 tianai-captcha,如果想继续使用原 anji-captcha, 注意前后端验证码相关代码都不要改动

⭐ Features

全局优化

  • 🚨 fix some javadoc warning
  • 💚 移除 git 换行符配置避免, git 换行符处理导致的 jpg 文件损坏
  • 📌 统一使用 jakarta 替换 javax
  • ⚡ 优化 maven 依赖配置:
    • 移除 spring-boot-configuration-processor 的依赖传递
    • 清理 IDEA 自动生成的部分无用配置
    • 格式化 pom 文件,依赖、模块引入等按照字母顺序排列

业务模块

  • 🐛 (Notify) 修复可以查询到已删除公告的问题
  • 🐛 (System) 修复多管理员同时删除角色造成的空指针问题
  • (System) 对字典的新建修改添加校验
  • (System) 允许用户新建菜单时不指定 id, 而是使用自增的方式 (#gh-220)
  • (System) 字典项修改时状态可以不传

ballcat-admin-core

✨ 内置默认的日志配置类,并根据当前使用的授权服务器注入不同的登陆处理器

Redis 组件

涉及模块:ballcat-common-redisballcat-spring-boot-starter-redis

  • @CacheDel 注解增强为可重复注解
  • RedisHelper 几个带过期时间的方法添加过期时间单位支持
  • @CacheDel 注解添加 allEntries 属性,支持删除同一个命名空间下所有相关key

mybatis-plus 相关

涉及模块:ballcat-extend-mybatis-plus

  • WrapperX 组件新增 lambdaUpdate 方法

OpenAPI 组件

涉及模块:ballcat-extend-openapi

  • 🐛 fix 在 webflux 环境下无法启动的问题

ballcat-common-core

  • ✨ 添加上下文组件, 以及上下文组件接入 spring
  • 🎨 现有线程顶级类使用上下文组件的方式接入 spring
  • SpringUtils 添加一个 publishEvent 发布事件方法
  • ✨ validate 注解支持使用 {} 替换非占位符的 default message

ballcat-common-model

  • 🎨 SystemResultCode 添加部分常用状态码
  • 🎨 修改 SelectData 属性 extendObj 为 attributes

ballcat-common-util

  • 🎨 修改 TreeNode 定义,使用 key 和 parentKey 做为父子节点的关联属性,更普适化
  • ✨ 添加 TreeUtils#forEachDFS 方法,深度优先遍历树节点

IP 组件

  • ✨ 添加 ballcat-spring-boot-starter-ip2region 模块,方便快速集成 Ip2region

定时任务组件

涉及模块:ballcat-spring-boot-starter-job

  • 💥 调整 xxl-job 配置添加 ballcat 前缀
  • ♻️ 优化 xxl-job 的自动配置
  • 🔥 移除 @EnableXxlJob 注解, 用户现在可以通过 ballcat.xxl.job.enabledfalse 来关闭 xxl-job 的使用

幂等组件

涉及模块:ballcat-common-idempotentballcat-spring-boot-starter-idempotent

  • ✨ 添加幂等组件 starter
  • ♻️ 抽象幂等 key 前缀生成器
  • ♻️ 优化幂等插件包结构
  • 🚚 KeyGenerator 接口修改为 IdempotentKeyGenerator, 防止自动配置和别的组件的 keyGenerator 重名导致的注册失败

OSS 组件

涉及模块:ballcat-spring-boot-starter-oss

  • 💥 重新实现的 OSS 操作,部分兼容老版API,并补全许多 S3 原生操作封装支持
  • 💥 oss 移除 domain 属性配置(可用 endpoint 属性替代, endpoint 兼容端点与自定义域名)
  • 💥 oss endpoint 属性配置需配置协议头
  • 💥 oss 移除rootPath属性配置 (可用 object-key-prefix 属性配置替代)
  • ✨ oss 新增enabled属性配置,用于控制oss是否启用
  • ✨ 新增 OssTemplate 组件,用以替代原 OssClient 组件
  • ✨ 新增 ObjectWithGlobalKeyPrefixOssTemplate 支持原 OssClient 中配置的全局 key 前缀

Security 相关

  • ♻️ 对 ballcat-common-security 模块进行拆分
  • ✨ 添加 ballcat-security-core 模块,验证码 validator 迁入此模块方便复用
  • 🔥 移除过时的忽略鉴权路径,使用 ballcat.security.oauth2.resourceserver.ignore-urls 配置
  • AuthenticationManager 交由授权服务器注册

ballcat-auth

  • ⚡ 密码解密判断在非密码模式下直接跳过
  • ✨ 使用 scope 来控制客户端是否跳过验证码以及密码解密
  • 🎨 客户端登录验证 client id 和 client secret
  • 🔥 移除弃用的测试客户端判断方法
  • ♻️ 表单登录的配置从资源服务器迁移到授权服务器
  • 🎨 缩小 auth 模块的包扫描范围
  • ✨ 对于授权码流程使用 STATELESS 无状态登录模式

Excel 模块

涉及组件:ballcat-spring-boot-starter-excel

  • DefaultAnalysisEventListener 添加 set 方法,便于 excel 导入时指定表头行数
  • @RequestExcel 注解添加 headRowNumber 属性方便指定 Excel Head 行数
  • 🩹 临时使用覆盖 class 的方式修复 easyexcel 导入 excel 时,在 Listener 的 invokeHead 中修改头信息不生效的问题

Web 相关

涉及模块:ballcat-spring-boot-starter-web

  • ⏪ 为了兼容部分客户端软件,回退使用 application/json;charset=UTF-8content-type
  • 💡 修复 PageParamArgumentResolverSupport 类中一个错误的注释
  • ✨ 异常通知支持同时发送给多个渠道, 旧配置方法过期
  • 🔥 移除无用的 additional-spring-configuration-metadata.json 文件
  • ⚡ 优化 SpringUtils 中的 ApplicationContext 注入时机

日志组件

涉及模块:ballcat-common-logballcat-spring-boot-starter-log

  • 🎨 提高 access log filter order,以便在 security filter chain 之前调用
  • ⚡ LoginLogUtils 抽取
  • ✨ 内置默认的日志配置类,并根据当前使用的授权服务器注入不同的登陆处理器
  • 🔥 移除 LogUtils 中无用代码

🔨 Dependency

  • 📌 使用 springdoc-openapi bom 进行相关依赖管理

  • 依赖:

    • 【修改】使用 jakarta 相关依赖替换 javax
    • 【升级】awssdk from 2.18.2 to 2.18.6
    • 【升级】easyexcel from 3.1.1 to 3.1.2
    • 【升级】flatten-maven-plugin from 1.2.5 to 1.3.0
    • 【升级】hutool from 5.8.5 to 5.8.9
    • 【升级】jsoup from 1.15.2 to 1.15.3
    • 【升级】swagger from 1.5.21 to 1.6.8
    • 【升级】swagger-v3 from 2.2.0 to 2.2.4
    • 【升级】spring-boot from 2.7.3 to 2.7.5
    • 【升级】spring-security-oauth2 from 2.3.8.RELEASE to 2.5.2.RELEASE
    • 【升级】springdoc-openapi from 1.6.11 to 1.6.12
  • 插件:

    • 【升级】spring-javaformat from 0.0.34 to 0.0.35
    • 【升级】maven-compiler-plugin from 3.8.0 to 3.10.1
    • 【升级】maven-source-plugin from 3.1.0 to 3.2.1
    • 【升级】maven-javadoc-plugin from 3.1.1 to 3.4.1
    • 【升级】nexus-staging-maven-plugin from 1.6.8 to 1.6.13

0.9.0

01 Sep 02:09
Compare
Choose a tag to compare

[0.9.0] 2022-08-31

⭐ Features

Common 相关

涉及模块:ballcat-common-core ballcat-common-util

  • 🐛 修复 AbstractQueueThread 中 getPollTimeoutMs 修饰符错误导致无法被子类覆写
  • 🌟 新增系统工具类, 完善多个工具类方法.
  • 🌟 新增 AbstractTimer 定时器线程
  • 🐛 修复部分情况下, 临时文件夹被删除导致文件处理失败

WebSocket 相关

涉及模块:ballcat-common-websocket ballcat-spring-boot-starter-websocket

  • ⚡ 减少获取 sessionKey 时发生 NPE 的可能性
  • 🌟 新增使用 RocketMQ 做为消息分发器的相关代码

Redis 相关

涉及模块:ballcat-common-redis ballcat-spring-boot-starter-redis

  • ⚡ 优化 CacheLock 的 RedisScript 使用单例模式,防止产生不同的 sha 值
  • RedisHelper 方法名重构,命名规则修改参考 redis 原生命令
  • 🌟 RedisHelper 添加 Stream 流相关使用方法以及其他数据结构的常用方法

OpenAPI 文档

涉及模块:ballcat-extend-openapi

  • 🐛 修复 swagger-ui 中分页查询 sort 参数无法添加多个的问题
  • 🐛 修复 sort 的正则中.未加转义字符,导致校验不严谨的问题
  • 🐛 修复使用 jar 包运行时无法正确显示分页参数的问题

Log 日志相关

涉及模块:ballcat-common-log ballcat-log-biz ballcat-spring-boot-starter-log

  • ⚡ 操作日志相关注解的 type 属性从枚举修改为 int,方便用户扩展
  • ⚡ 只在用户名密码方式鉴权失败时进行登录失败的日志记录

mybatis 相关

涉及模块:ballcat-extend-mybatis-plus

  • 🐛 修复 EnumNameTypeHandler 为默认枚举类型处理器时 处理实现IEnum的枚举值获取异常

🔨 Dependency

  • 【升级】spring-boot from 2.7.1 to 2.7.3
  • 【升级】jsoup from 1.14.3 to 1.15.2
  • 【升级】hutool from 5.8.3 to 5.8.5
  • 【升级】springdoc-openapi from 1.6.9 to 1.6.11
  • 【升级】spring-javaformat from 0.0.31 to 0.0.34
  • 【升级】mapstruct from 1.4.2.final to 1.5.2.final