升级并支持 spring-boot3(jdk、spring-cloud、spring security6等)
安全:支持开关,将带@sensitive 注解的字段在自动打印日志中脱敏/不打印
更新较多,列出主要更新:
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
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
提供 starters
全局唯一标识生成器(分布式全局id)
operation-log
模块
完善安全认证实现
Oauth2 JWT Token 授权
TokenAuthenticationSuccessHandler
)接口响应自动包装支持配置排除路径
框架异常整理
翻译支持spring原生用法、增加识别jar内多语言资源文件夹
增加 maven archetype
,便于快速创建工程
ECDH
,jdk15中才加的功能,shoulder已经在jdk8中实现,且为Spring Boot 提供了开箱即用的能力)ColorStringBuilder
,方便构建彩色输出HTTP
接口自动记录日志支持单行格式RestTemplate
接口调用,默认支持彩色和单行两种browser
可用micrometer
,可使用 Prometheus
等对接数据库功能支撑
mybatis-plus
增强 mybatis更舒服的控制台日志(针对开发阶段、基于色彩学,DEBUG=淡灰色;INFO=控制台默认色;Warn=蓝色;异常/Error=粗体、红色;行号:蓝色;线程名称/线程id/时间=跟随日志级别)
JSON 工具支持自动扩展
新增http接口自动记录日志 Controller日志
可监控、动态调整的线程池
将 spring-web 日志级别提高为INFO,防止无用日志过多
添加监控对接技术方案
已知问题
首次发布,将大多数基本功能测试并发布
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。