升级并支持 spring-boot3(并将相关生态升级,如 jdk、spring-cloud、spring security6、swaggerv3/OPEN-APIv2等)
完整的更新比较: https://gitee.com/ChinaLym/shoulder-framework/compare/v0.7...v0.8
更新较多,列出主要更新:
shoulder 不再为除spring boot外的三方jar定制能力(如mybatis-plus)以减少三分jar定制功能学习成本,
也不考虑没有spring上下文的情况,本框架强依赖Spring,定位为Spring的能力扩展。
升级到了 SpringBoot 2.7.x,
关于springfox升级注意事项spring boot2.x升级到2.6
升级2.7注意: https://spring.io/blog/2022/05/19/spring-boot-2-7-0-available-now
DB
!null
&& 正在事务
&& TransactionSynchronizationManager.getResource(dataSource) == null
|| isTransactionActive=false
core
autoconfiguration
操作日志
batch
log
安全与加密-脱敏
- 敏感词过滤
- 字段名-脱敏 shielder 算法id-脱敏算法实现
- 注解形式,输出时自动脱敏
AuthServer 因 Spring Security OAuth 项目废弃,暂时废弃,将在下一版本待 spring-auth-server 稳定后一起回归
redis 连接池事件监听聚合接口
monitor 部分能力增强
稳定性提升:bugfix、compile warning
依赖升级
springboot 2.4.5 -> 2.7.16
spring-cloud 2020.0.2 -> 2021.0.1
swagger2 1.6.2 -> 1.6.11(默认不引入)
swagger3 2.1.9 -> 2.2.16(默认不引入)
nimbus-jose-jwt 8.21 -> 9.35
hutool 5.8.22 -> 5.8.22
xstream 1.4.17 -> 1.4.20
guava 30.1.1-jre -> 31.2-jre
alibaba.transmittable 2.12.1 -> 2.14.3
bcprov.jdk15on 1.68 -> 1.70
bcpkix.jdk15on 1.68 -> 1.70
caffeine 2.8.5 -> 3.0.5(默认不引入)
tika-core 1.24.1 -> 2.9.0
opencsv 4.1 -> 5.6
h2 1.4.200 -> 2.2.224
redisson -> 3.23.5
mybatis-plus 3.4.2 -> 3.5.3.2
p6spy 3.3.2 -> 3.9.1
knife4j 3.0.2 -> 3.0.3
jna 5.8 -> 5.13
javassist 3.27.0-GA -> 3.29.2-GA
lombok 1.18.30
druid 1.2.4 -> 1.2.8
mysql-connector-j -> 8.1.0 mysql artifactId 变更
---
maven-compiler-plugin 3.8.1 -> 3.11.0
maven-gpg-plugin 3.0.1 -> 3.1.0
maven-source-plugin 3.2.1 -> 3.3.0
maven-javadoc-plugin 3.2.0 -> 3.6.0
maven-jar-plugin 3.2.0 -> 3.3.0
maven-surefire-plugin 2.22.2 -> 3.1.2
license-maven-plugin 2.0.0 -> 2.2.0
sonar-maven-plugin 3.7.0.1746 -> 3.10.0.2594
versions-maven-plugin 2.7 -> 2.16.1
git-commit-id-plugin 2.1.5 -> 6.0.0(groupId变化)
errcode-maven-plugin --> shoulder-maven-plugin
maven-resources-plugin 3.0.2 -> 3.3.1
maven-archetype-plugin 3.2.0 -> 3.2.1
archetype-packaging 3.2.0 -> 3.2.1
详细更新日志: https://gitee.com/ChinaLym/shoulder-framework/blob/v0.7/CHANGELOG.MD
与0.6比较: https://gitee.com/ChinaLym/shoulder-framework/compare/v0.6...v0.7
0.6 版本主要致力于基本能力的完善,也是标志着基本使用方式确定,具体的实现可能有部分调整,方向不再大幅变动。
上下文工具类很早就提交了,但一直未支持使用,但模块中又依赖上下文,因此上下文进行重构,准备落地使用
操作日志在 0.1 添加了,0.5 对其进行了调整,0.6 中将结合实际使用情况,进行调整,并添加基本实现,重构定义部分接口,如operationLogger接口,使其更符合整体的设计,提升扩展性和易用性。
加解密部分代码规范性重构:密钥协商可以定制协商 / 加密算法、允许增删支持的算法;优化api更易于使用;符合http规范;
依赖升级
接口文档选型
core:
操作日志框架重构
db
web
RestController
全局异常处理仅对 json
格式响应支持validate
crypto
AES256 CBC
,而是根据协商双发都支持的算法随机选择(可自行替换成安全性更低地以获得更高的性能)"X-S-"
扩展模块
starters
拓展新功能,维护已有模块的设计,对接错误码等规范,修复多个缺陷。
批量业务抽象支持
全局id生成器
web
校验框架
日志框架
优化基础包中的非必选强依赖
默认使用 Undertow
而非 Tomcat
tomcat
的依赖undertow
不支持jsptomcat
、若希望使用 undertow
使用者自行排除即可分布式锁
加解密
安全与认证
验证码框架
操作日志框架
OperationLogBuilder
-> OperationLogFactory
ECDH
,jdk15中才加的功能,shoulder已经在jdk8中实现,且为Spring Boot 提供了开箱即用的能力)ColorStringBuilder
,方便构建彩色输出HTTP
接口自动记录日志支持单行格式RestTemplate
接口调用,默认支持彩色和单行两种browser
可用micrometer
,可使用 Prometheus
等对接mybatis-plus
增强 mybatisShoulder 的第一个可用的版本包含
shoulder-base
(功能实现)
shoulder-core
shoulder-validation
shoulder-web
shoulder-operation-log
shoulder-crypto
shoulder-operation-log
shoulder-starters
(利用 spring-boot
进行自动装配,方便更简单的使用)
shoulder-autoconfiguration
shoulder-starter
shoulder-core
shoulder-autoconfiguration
(定位类似 spring-boot-starter)mapstruct
提供,Shoulder 的 Bean 转换工具选型
Shoulder 更多模块正在迭代中,现在仍然处于1.0.0
之前的版本,为了更好的使用或维护仍有可能进行重构~