1.0.0
[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-redis、ballcat-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.enabled
为false
来关闭 xxl-job 的使用
幂等组件
涉及模块:ballcat-common-idempotent、ballcat-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-8
的content-type
- 💡 修复
PageParamArgumentResolverSupport
类中一个错误的注释 - ✨ 异常通知支持同时发送给多个渠道, 旧配置方法过期
- 🔥 移除无用的
additional-spring-configuration-metadata.json
文件 - ⚡ 优化
SpringUtils
中的 ApplicationContext 注入时机
日志组件
涉及模块:ballcat-common-log、ballcat-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