Skip to content

0.7.0

Compare
Choose a tag to compare
@Hccake Hccake released this 13 Apr 02:51
· 629 commits to master since this release

⚠️ 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 注解嵌套使用

数据权限规则优先级,由高到低:

  1. 编程式规则
  2. 当前方法的注解规则
  3. 当前类的注解规则
  4. 调用者使用的权限规则
  5. 全局默认规则

长连接组件 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