0.7.0
⚠️ Warning
-
此版本操作日志表有字段新增,升级前注意先执行对应的增量 SQL
-
访问日志的忽略 url 现在只需填写 servlet 内的路径了,升级后请注意调整,防止失效
-
openapi 的配置文件调整,现在文档基本信息的属性添加了一个 info 的前缀
-
WebSocket 组件中的
AbstractJsonWebSocketMessage
改名为JsonWebSocketMessage
,升级时如遇到 class import 失败,请注意对应修改类名 -
由于 spring-javaformat 组件的升级,现在如果在 jdk8 环境下,请在项目跟目录新建一个名为
.springjavaformatconfig
的文件,文件内容如下:java-baseline=8
⭐ New Features
日志相关改动 ballcat-common-log spring-boot-starter-log
- 🌟 访问日志的忽略 url 现在只需填写 servlet 内的路径了
- 🌟 操作日志注解增强:用户可以指定是否记录当前操作方法的参数和返回值
- 🐞 抛
BusinessException
异常时,日志记录丢失traceId
的问题 - 🐞
CustomAccessLogHandler#getParams
改变不可变的 parameterMap 集合问题 - 🐞 修复公告图片上传时的操作日志记录异常问题
国际化 ballcat-common-i18n
- 🌟 优化下细节:在 i18n 处理失败时,也正常响应
web 服务 ballcat-spring-boot-starter-web
- 🌟 actuator 拦截器现在只在引入了 actuator 时开启,且拦截地址跟随 actuator 的 base-path 配置
- 🐞 修复默认配置下仅引入 ballcat-spring-boot-starter-web 时启动异常的问题
分页查询调整 ballcat-common-core
- 🌟 分页参数
PageParam
的 valid 校验支持 - 🌟
PageParam
分页条数上限可通过配置ballcat.web.page-size-limit
动态修改,默认值 100 - 🌟 所有分页接口,添加 PageParam 的入参校验
- 🌟 支持带表别名的排序列
- 🌟 分页查询新增参数 sort 设置排序规则,格式为:property(,asc|desc),支持传入多个排序字段
缓存工具 ballcat-spring-boot-starter-redis
- 🌟 redis 相关 bean 添加 @ConditionalOnMissBean 注解,方便用户替换
- 🌟
RedisHelper
工具类添加 zset 的基本操作 - 🐞 修复在没有配置
ballcat.redis.key-prefix
属性时启动报错的问题
系统管理 ballcat-system
- 🌟 组织机构树查询支持模糊查询名称
- 🌟 新增组织机构列表查询
- 🌟 菜单和组织机构的筛选都移交到前端处理了
- 🎨 解耦 system 和 websocket 模块(notify 解耦未完成,后续重构通知时处理)
Tree 工具相关改动 ballcat-common-util
- 🌟
TreeUtils
新增剪枝方法pruneTree
- 🌟
TreeUtils
泛型调整 - 🎨
SimpleTreeNode.getChildren
方法重写,方便直接获取对应的类型数据
数据权限组件 ballcat-spring-boot-starter-datascope
- 🐞 修复
DataPermissionAnnotationHolder
只清空了 deque,没有 remove 的问题 - 🌟 添加编程式数据权限规则控制支持,可与
@DataPermission
注解嵌套使用
数据权限规则优先级,由高到低:
- 编程式规则
- 当前方法的注解规则
- 当前类的注解规则
- 调用者使用的权限规则
- 全局默认规则
长连接组件 ballcat-websocket
- 🌟 优化下 UserSessionKeyGenerator 的 Conditional 判断,方便用户替换
- 🌟 WebSocket 的 session 存储角色,从
WebSocketSessionHolder
修改为WebSocketSessionStore
- 🌟 现在不再默认覆盖同一 sessionKey 的 wsSession 了,方便用户进行全客户端推送
- 🌟 新增
AbstractMessageDistributor
, 将MessageDistributor
的 default 方法下沉到该抽象类中 - 🌟 跨域配置添加
allowed-origin-patterns
属性 - 🌟 添加 SockJs 的支持
- 🎨 优化下
RedisMessageListener
的注册方式,防止误扫描导致的 bean 注册异常 - 🎨 优化 ballcat-spring-boot-starter-websocket 的配置类结构
- 🎨 精简代码层级,将接口
JsonWebSocketMessage
删除,原抽象类AbstractJsonWebSocketMessage
改名为JsonWebSocketMessage
幂等组件 ballcat-idemptent
- 🌟 幂等控制注解增强:可以指定消息单位以及幂等拦截时的错误提示了
- 🌟 幂等组件允许用户控制是否再异常时删除幂等标识,方便有些不允许重试的方法进行幂等控制
- ✅ 添加幂等组件的一些测试用例
接口文档 ballcat-extend-openapi
- 🌟 添加部分 OpenAPI 配置
- 🌟 文档信息的配置下沉到 info 前缀下
其他问题
- 🐞 调整 ProviderManager 的层级,以解决错误的 token 会触发两次鉴权失败异常的问题
- 🐞 修复 OSS 上传文件时不主动关闭临时的流. 导致大量文件上传时出现异常
- 🐞 公告信息分页查询 bug
- 🐞 fix jdk11 下打包异常的问题
🔨 Dependency Upgrades
- 【升级】spring-boot from 2.6.2 to 2.6.6,且后续使用官方 dependencies 进行依赖管理
- 【升级】spring-boot-admin from 2.6.0 to 2.6.6
- 【升级】spring-javaformat from 0.0.29 to 0.0.31
- 【升级】hutool from 5.7.12 to 5.7.19
- 【升级】mybatis-plus from 3.5.0 to 3.5.1
- 【升级】springdoc-openapi from 1.6.4 to 1.6.7
- 【升级】software.amazon.awssdk from 2.16.61 tp 2.17.154