登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
Gitee AI
NEW
我知道了
查看详情
登录
注册
代码拉取完成,页面将自动刷新
开源项目
>
程序开发
>
Spring Boot 扩展
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
6
Star
11
Fork
8
ChinaLym
/
shoulder-framework
代码
Issues
0
Pull Requests
0
Wiki
统计
流水线
服务
Gitee Pages
JavaDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
我知道了,不再自动展开
发行版
最新版
v0.8.1
97fdcc6
2024-06-17 03:51
对比
0.8.1
ChinaLym
> 小的依赖版本调整 * shoulder-dependencies 升级依赖 * `spring-boot` 3.2.4 -> 3.2.6 * `mybatis-plus` 3.5.5 -> 3.5.6 * `commons-io` 2.16.0 -> 2.16.1 * `shoulder-maven-plugin` 1.2.1 -> 1.2.2 * shoulder-core * 单测 bugfix [issue18](https://gitee.com/ChinaLym/shoulder-framework/issues/I9LMWX ) 由 [@wang-tian-cheng](https://gitee.com/wang-tian-cheng) [贡献](https://gitee.com/ChinaLym/shoulder-framework/pulls/5) * autoconfiguration * 添加提示项 * shoulder-archetype-simple 优化 * 去除不需要的 import * readme.md 介绍文件内容优化 * 去除多余的配置文件内容 * 源码目录添加 `model` **完整的更新日志**: https://gitee.com/ChinaLym/shoulder-framework/compare/v0.8...v0.8.1
最后提交信息为:
release
v0.8
aa6f241
2024-04-27 12:46
对比
0.8(升级 spring boot3.2, JDK 17)
ChinaLym
> 升级并支持 spring-boot3(并将相关生态升级,如 jdk、spring-cloud、spring security6、swaggerv3/OPEN-APIv2等) - core - 升级 jdk17 - concurrent 引入双buffer缓存通用工具类 DoubleBufferCache,便于更简单的实现该高性能算法。 - 提供增强的 ConversionService,支持集合、更多的类转换,比如日期解析时支持多种格式,Jdk8的各类时间互转 - Translator 增加支持默认message方法 - 新增字典定义 - 新增日志配置,提供默认 logger - 基础错误码新增 - 多线程工具优化,能力增强 - fix 修正错误的拼写 - db - 扩展的 bizId、version、逻辑删除等 模板Entity进入可用状态,现在可以继承这些模板类减少bizId 相关DB操作代码的编写了(0.6 引入并开始孵化) - operation-log - detailKey 改为 detailI18nKey,db 中 detail_key 改为 detail_i18n_key - detailItems 改为 detailI18nItems,db 中 detail_item 改为 detail_i18n_values - web - 模板类进入可用状态(0.6 引入并开始孵化) - 提供开箱即用可扩展的字典、标签能力(0.6 引入并开始孵化),并添加配套支持(HTTP-API、相关工具类、ConversionService、JPA、Mybatis-plus、MongoDb...) - filter 提供可配置的 traceId、user、tenantId 默认填充过滤器,方便后续使用 AppContext 上下文。 - BaseResultAdvance 优化:若返回值是 Collection,则改用 ListResult 包装 - 提供 xss 过滤器,保障内容安全 - 兼容 spring boot spring/security 6.x 新方法 - autoconfiguration(forTest) - 支持内嵌 redis 启动,方便测试 - traceId、userId、tenantId mock - crypto - fix spring6 RestTemplate 底层方法不兼容变更bug - batch - 批处理模块进入可用状态(0.6 引入并开始孵化) - configuration - 支持开关,将带@sensitive 注解的字段在自动打印日志中脱敏/不打印 **完整的更新比较**: https://gitee.com/ChinaLym/shoulder-framework/compare/v0.7...v0.8
最后提交信息为:
doc 0.8
v0.7
5058098
2023-10-12 17:50
对比
0.7.1(2023年10月2日 发布)
ChinaLym
## 更新内容 更新较多,列出主要更新: - shoulder 不再为除spring boot外的三方jar定制能力(如mybatis-plus)以减少三分jar定制功能学习成本, 也不考虑没有spring上下文的情况,本框架强依赖Spring,定位为Spring的能力扩展。 - 升级到了 **SpringBoot 2.7.x**, 关于springfox升级注意事项[spring boot2.x升级到2.6](https://springfox.github.io/springfox/docs/snapshot/#migrating-from-existing-2-x-version) - 升级2.7注意: https://spring.io/blog/2022/05/19/spring-boot-2-7-0-available-now - META-INF/spring.factories - META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports - DB - 自动判断是否存在分布式事务问题,默认仅开发时生效 - TransactionSynchronizationManager.isActualTransactionActive() 判断是否有 @Transactional - 且该方法是写的(C/U/D)支持扩展这里 - 拿到数据源 - 判断是否是同一个事务管理器(不是则可能有分布式事务问题) - `!null` && `正在事务` && `TransactionSynchronizationManager.getResource(dataSource) == null` || `isTransactionActive=false` - core - 调整部分内置错误码定义 - json 日期格式按照统一设置 - 增加了部分高性能的数据结构,以适用于企业级流量染色场景 - autoconfiguration - 兼容性优化:调整功能自动激活逻辑,增加部分功能关闭开关 - 集群模式下不需要手动注入 instanceId,由依赖手动注入改为 默认配置 + WARN 日志提醒 - 操作日志 - 优化扩展,支持自定义解析逻辑,以支持在记录操作日志时,同时记录其他信息:OperationLoggerInterceptor - batch - 批处理模块支持导出导出,进度条等基本逻辑,上升至无依赖任务批处理 - 新增支持并发 process,允许单独使用,见 [spider 项目](https://gitee.com/ChinaLym/learn-spider) - log - Logger 分割,定义更明确,以满足更多的日志文件划分方式,以应对大业务量的场景 - 新增 缓存(redis) 访问日志输出,默认只对慢查询、大数据做一定记录 - 新增统计日志(stat-log),REST 分钟级访问统计 - 异常日志新增链路上下文打印 - 追踪日志更详细:digest、stat - ~~安全与加密-脱敏~~ ~~- 敏感词过滤~~ ~~- 字段名-脱敏 shielder 算法id-脱敏算法实现~~ ~~- 注解形式,输出时自动脱敏~~ AuthServer 因 Spring Security OAuth 项目废弃,暂时废弃,将在下一版本待 spring-auth-server 稳定后一起回归 - redis 连接池事件监听聚合接口 - LettuceEventConsumer - monitor 部分能力增强 - 稳定性提升:bugfix、compile warning - 依赖升级 ```bash 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
最后提交信息为:
release 0.7.1
v0.6
878187a
2021-05-22 15:58
对比
0.6
ChinaLym
## 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 重连、集群变更等事件
最后提交信息为:
!3
v0.6
v0.5
bddbd7d
2020-12-06 22:22
对比
拓展新功能,维护已有模块的设计,对接错误码等规范,修复多个缺陷
ChinaLym
# 0.5(2020年12月6日) 拓展新功能,维护已有模块的设计,对接错误码等规范,修复多个缺陷。 #### 亮点: - 分布式id生成器性能提升(魔改雪花算法吊打各家实现) - 基于SpringSecurity 安全的认证,该版本已经稳定,且实现了部分默认配置。目前支持 session / common token / jwt / jwk。 - 分布式锁(兼容jdk接口:可重入的redis实现,兼顾嵌套事务的数据库实现) - 快速接入批量业务 - 操作日志框架支持嵌套调用(参考了 Spring 的事务传播) #### 大概改动 - 批量业务抽象支持 - csv / excel 解析 - 批量校验、查询进度、导入、查询进度、查询导入历史、导入详情 - 导出 - 全局id生成器 - 性能提升 - 增加透支消费上限配置、智能阻塞 - 超高压力下识别缓存buffer过度消费(只在单节点亿级/s以上的压测中才可能出现) - web - 全局异常拦截:现在会对 JSR303 校验框架抛出的异常做详细日志记录以及返回值封装 - 日志记录:支持记录 MultiPartFile 类型参数信息 - 校验框架 - 参数相关错误码移动至 validate - 提供默认翻译项(通过插件生成) - @MimeType 改为 @FileType 并增加更多校验能力 - 文件类型检查从 mime 类型,改为后缀名 allowList -> allowSuffix - 增加对文件头的检查 - 增加对文件大小的检查 - 增加对文件名称格式限制检查(支持正则,包含允许字符检查、禁止字符检查) - 增加对批量文件上传校验支持 - 日志框架 - 为 debug、info、warn 级别增加类似 errorWitErrorCode 的方法,支持更低级别打印错误码 - core 中提供 LogHelper 用于生成方法栈目标栈的跳转链接(从 http 的 HttpLogHelper 迁移) - 优化基础包中的非必选强依赖 - 如 spring,降低最小使用依赖成本 - ~~默认使用 `Undertow` 而非 `Tomcat`~~ - 取消各个模块对 `tomcat` 的依赖 - 注意 `undertow` 不支持jsp - 废弃该需求,不实现:默认 `tomcat`、若希望使用 `undertow` 使用者自行排除即可 - 分布式锁 - 提供锁的概念、接口定义 - 默认实现 - JDK 适配(非分布式) - 基于内存(伪分布式,默认) - 基于数据库(依赖了数据库则默认使用该方式) - 基于 Redis - 加解密 - 修复本地存储加解密中-文件存储-未配置存储路径时未能正确新建 - 本地存储加解密中-文件存储-支持多个工程同时启动且共享一个文件 - 本地存储加解密中-文件存储-内容为空(如手动清空,但不删除该文件)导致的加载失败 - 修复密钥交换流程错误bug - 密钥交换流程增加额外处理:服务器缓存意外失效后,客户端自动清理无效缓存并重新发起协商(如 redis 宕机重启,且恰好服务端密钥交换缓存丢失,而客户端密钥交换缓存还在) - 删除加解密门面接口,因为可能未使用所有加密方式 - 默认项目启动后,异步初始化本地加解密,以提升第一次调用性能 - 安全与认证 - 提供 Token 认证方式默认实现和装配 - 完善 session 认证中条件装配 - 添加基于 Session 认证 Demo - 添加基于 Token 认证 Demo - 验证码框架 - 支持一个 url 需要校验多种验证码 - 操作日志框架 - 支持加了该注解的方法 A 中调用 加了该注解的方法 B 时 - 支持自定义业务传播行为(日志上下文创建策略),接口:OperationContextStrategy - 调整日志上下文的包名、创建器类名 `OperationLogBuilder` -> `OperationLogFactory`
最后提交信息为:
doc(0.5) 调整插件,发布 0.5
v0.3
8f8e934
2020-09-25 20:40
对比
完善数据库、web/http日志、密钥交换、监控,升级依赖版本
ChinaLym
- 数据库功能增强:分页、自动补充创建者、修改者、创建时间、修改时间 - 更简单的服务间安全传输(基于`ECDH`,jdk15中才加的功能,shoulder已经在jdk8中实现,且为Spring Boot 提供了开箱即用的能力) - 增加 `ColorStringBuilder`,方便构建彩色输出 - 优化新增自动日志与美化(自动区分本地和生产环境) - `HTTP` 接口自动记录日志支持单行格式 - 自动记录 `RestTemplate` 接口调用,默认支持彩色和单行两种 - 重构日志自动记录类关系,便于二次扩展,自定义日志规则(如某些用户记录、特定请求记录等)与格式 - 完善安全认证实现,`browser`可用 - 完善验证码框架,可用 - 增加监控模块(线程池监控、错误码、异常监控),基于 `micrometer`,可使用 `Prometheus` 等对接 - 升级依赖 Spring Boot-> 2.3.4, Cloud-> H.S8,修复 RFD 漏洞 - 废弃 trace、minio、aopx 三个模块,移动至 shoulder-platform 中,Spring 高级特性使用保留原生用法
最后提交信息为:
deploy(0.3): 去除编译警告
v0.2
faf0905
2020-09-11 01:26
对比
v0.2
ChinaLym
## 0.2(2020年9月10日) - 数据库功能支撑 - 连接池选型为 beeCP,近似 spring boot 默认连接池两倍性能 - 引入 `mybatis-plus` 增强 mybatis - 数据源动态切换 - 更舒服的控制台日志(针对开发阶段、基于色彩学,DEBUG=淡灰色;INFO=控制台默认色;Warn=蓝色;异常/Error=粗体、红色;行号:蓝色;线程名称/线程id/时间=跟随日志级别) - JSON 工具支持自动扩展 - 新增http接口自动记录日志 Controller日志 - 开发阶段更好的调试体验 - 支持IDE点击打印日志,自动跳转代码位置 - 可监控、动态调整的线程池 - 可实现负载告警、动态扩容、资源释放、执行统计 - 将 spring-web 日志级别提高为INFO,防止无用日志过多 - 添加监控对接技术方案
最后提交信息为:
doc(0.2) 准备0.2版本发布
v0.1
fb07a30
2020-08-09 17:34
对比
第一个可用的发行版 0.1
ChinaLym
Shoulder 的第一个可用的版本包含 - `shoulder-base`(功能实现) - `shoulder-core` - 核心包(日志、错误码、翻译、标准DTO、工具、应用基本信息、常用转换器) - `shoulder-validation` - 参数校验相关 - `shoulder-web` - web 项目功能增强 - `shoulder-operation-log` - 记录操作日志 - `shoulder-crypto` - 加解密相关 - `shoulder-operation-log` - 记录操作日志 - `shoulder-starters`(利用 `spring-boot` 进行自动装配,方便更简单的使用) - `shoulder-autoconfiguration` - 自动配置包(定位类似 spring-boot-autoconfiguration) - `shoulder-starter` - 包含 `shoulder-core` `shoulder-autoconfiguration`(定位类似 spring-boot-starter) - **shoulder-starter-web** - web 项目功能增强,spring boot 项目直接引入这个(定位类似 spring-boot-starter-web) - **shoulder-starter-beanmap** - shoulder 默认的 DTO、bean 转换工具,能力由 `mapstruct` 提供,[Shoulder 的 Bean 转换工具选型](https://gitee.com/ChinaLym/shoulder-framework/tree/master/shoulder-build/shoulder-starters/shoulder-starter-beanmap) 示例工程: [github](https://github.com/ChinaLym/shoulder-framework-demo/tree/master/demo1) [gitee](https://gitee.com/ChinaLym/shoulder-framework-demo/tree/master/demo1) Shoulder 更多模块正在迭代中,现在仍然处于`1.0.0`之前的版本,为了更好的使用或维护仍有可能进行重构~
最后提交信息为:
add tag.sh
下载
请输入验证码,防止盗链导致资源被占用
取消
下载
Java
1
https://gitee.com/ChinaLym/shoulder-framework.git
git@gitee.com:ChinaLym/shoulder-framework.git
ChinaLym
shoulder-framework
shoulder-framework
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册