Skip to content

0.6

Compare
Choose a tag to compare
@ChinaLym ChinaLym released this 22 May 08:14
· 459 commits to master since this release

0.6 (2021年5月21日 发布)

0.6 版本主要致力于基本能力的完善,也是标志着基本使用方式确定,具体的实现可能有部分调整,方向不再大幅变动。

上下文工具类很早就提交了,但一直未支持使用,但模块中又依赖上下文,因此上下文进行重构,准备落地使用

操作日志在 0.1 添加了,0.5 对其进行了调整,0.6 中将结合实际使用情况,进行调整,并添加基本实现,重构定义部分接口,如operationLogger接口,使其更符合整体的设计,提升扩展性和易用性。

加解密部分代码规范性重构:密钥协商可以定制协商 / 加密算法、允许增删支持的算法;优化api更易于使用;符合http规范;

  • 依赖升级

    • spring boot: 升级到 2.4.5
    • spring cloud: 升级到 2020.0.2
    • 其他依赖小版本升级
  • 接口文档选型

    • 注解同时支持 swagger3(主)/swagger2
    • 注释支持 smartDoc
    • 可视化界面默认使用 knife4j
  • core:

    • 错误码,默认日志级别调整为 ERROR
    • 使用 AppContext 作为变量共享中心,且支持自动跨线程
    • 新增 instanceId 获取,并添加两种可选的方式(配置 / from redis),集群模式自动切换
    • DelayTask 现在默认自动开启
    • 新增线程池增强器接口,可以在这里定义全局线程增强
    • 响应中增加错误上下文(在 ext 扩展字段中)
    • 错误码
      • 目前不推荐错误码与 log 级别 / HTTP 响应码绑定
      • 新增错误码插件,在编译时,自动根据注释生成错误码文档,供项目使用
    • i18n
      • 消除启动时因个性化设置后且 baseFilePath 中包含 '*' 且文件不存在时的堆栈打印提醒
      • 结合世界国际化组织标准增加跨地域上下文以增强多语言、全球化能力
    • 增加日期转换器格式
    • JsonUtil 反序列化日期支持格式增加,允许复用 core 中的枚举解析器反序列化枚举
    • 新增 guid 标准接口,自动注入 guid 生成器
  • 操作日志框架重构

    • 日志上下文增加语法糖方法
    • 包结构重构
    • DTO添加更多常用字段,记录更详细,如用户端特征UA
    • logger 增加 bufferedLogger,优化以 HTTP / MQ / Jdbc 形式记录日志的频繁写入性能
    • 当 @OperationLog 所在方法抛出异常时,若为 ErrorCode 及其子类,则自动记录错误码
      • 更换跨线程增强方式,使用 shoulder-core 中定义的扩展点,提高 shoulder 框架内聚
  • db

    • 模板类重构
      • 包路径变更 org.shoulder.data.mybatis.base -> org.shoulder.data.mybatis.template
      • 泛型要求调整
    • 确定依赖 mybatis-plus(其新分页插件存在5个月无法使用的bug修复)
    • 增加 mybatis-plus 扩展方法,如针对 bizId 的
  • web

    • 默认的 RestController 全局异常处理仅对 json 格式响应支持
    • 引入 字典、标签 通用功能暂时放置于 web
    • 引入依赖于 db 的通用 controller 实现快速开接口
  • validate

    • 通用错误码提供枚举类
    • 首次引入动态校验规则
  • crypto

    • 对称加解密较大重构(最后一个参数为 明文/密文),使用接口,而非静态工具类
    • 统一参数位置,统一使用方法的最后一个参数作为待处理的明文/密文
    • 密钥协商
      • 完善协商协议,不再是固定使用最高银行加密级别 AES256 CBC,而是根据协商双发都支持的算法随机选择(可自行替换成安全性更低地以获得更高的性能)
      • 修改协商请求头前缀为 "X-S-"
  • 扩展模块

    • 引入扩展模块
    • 后台配置:ext-config 开箱即用的轻量级配置管理模块
      • 后续引入动态表单:动态字段展示样式
  • starters

    • 完善一些自动配置的提示
    • 引入 shoulder-starter-mysql 快速对接 mysql
    • 允许监听 redis 重连、集群变更等事件