5.10.1 升级日志
统计范围:2026-05-27 ~ 2026-10-09,涵盖以下仓库:
一、重大变更:在线文档 knife4j → NextDoc4j
全平台在线文档由 knife4j 4.5.0 替换为 NextDoc4j 1.4.1(基于 springdoc-openapi 2.8.17)。
后端变更(lamp-util-max)
- 新增
lamp-nextdoc4j-starter 模块:NextDoc4jAutoConfiguration(OpenAPI 信息 Bean)+ NextDoc4jProperties(配置前缀 lamp.nextdoc4j),引入 nextdoc4j-spring-boot-starter + springdoc-openapi-starter-webmvc-ui + nextdoc4j-plugin-security-schemes
lamp-all-boot 的文档依赖由 lamp-swagger2-starter 替换为 lamp-nextdoc4j-starter(旧模块保留构建,老项目可自行切换)
lamp-annotation 移除未被使用的 knife4j-core 依赖
lamp-parent 依赖管理调整:
- springdoc 2.8.5 → 2.8.17(
springdoc-openapi 改为 springdoc-openapi-bom)
- swagger-core 三件套(core/annotations/models-jakarta)统一 pin 到 2.2.47
- 新增
nextdoc4j-bom:1.4.1 import
- 显式 import
jackson-bom:2.18.2 和 spring-boot-dependencies:旧版靠 springdoc-openapi 项目 pom(父 pom 为 Boot 3.4.2)压制 dubbo-bom 夹带的 spring-security 5.8.16、spring-data-redis 2.7.18 等旧版本;换成无父 pom 的 BOM 后该机制失效,必须显式声明。jackson 钉在 2.18.2 是因为 lamp-core 中魔改的 EnumDeserializer(支持前端传 {"code": "xx"})基于 2.18 源码
- ⚠️ 注意:升级 spring-boot 版本时需同步修改
spring-boot-dependencies.version 属性
后端变更
- 网关:移除
knife4j-openapi3-ui,接入 nextdoc4j-gateway-spring-boot-starter + springdoc-openapi-starter-webflux-ui;停用自定义聚合 OpenApi3Controller(聚合改由 starter 的 auto-discovery 实现);启动日志文档地址更新
- 配置:单体版
doc.yml(dev/prod)和 lamp-job-executor/application.yml 中 lamp.swagger → lamp.nextdoc4j,删除 knife4j: 配置块,替换为 nextdoc4j: 配置(含文档访问密码 basic auth)
- 白名单:
IgnoreProperties 根级新增 /nextdoc/**(nextdoc4j 前端静态资源免鉴权)
- 规范:25 个枚举类的
@Schema(allowableValues = "A,B") 逗号字符串写法统一改为数组写法 allowableValues = {"A", "B"}
升级时需要做的配置调整
- Nacos 公共配置:删除
knife4j: 块;lamp.swagger: 改为 lamp.nextdoc4j:;springdoc 中 ${knife4j.enable} 引用改为 ${nextdoc4j.enabled};新增:
nextdoc4j:
enabled: true
auth:
enabled: true
password: lamp # 文档访问密码,生产环境务必修改
- Nacos 网关配置(lamp-gateway-server.yml) 新增聚合配置:
nextdoc4j:
enabled: true
auth:
enabled: true
password: lamp
gateway:
auto-discovery: true
service-swagger-config-enabled: true # 聚合各服务所有分组
include-patterns: # 按网关实际路由 id 填写
- base
- system
- oauth
- sopadmin
name-mappings:
base: 基础服务
system: 系统服务
oauth: 认证服务
openapi: 开放平台
- 访问地址:各服务
http://<host>:<port>/doc.html;网关聚合 http://<gateway>:<port>/api/doc.html,访问需输入文档密码
二、安全修复
- fix: lamp-cloud 模板 Groovy 脚本执行导致远程代码执行漏洞(close #408):加固
GlueFactory,限制 Groovy 脚本的执行能力
三、依赖升级
| 依赖 |
旧版本 |
新版本 |
| spring-boot |
3.5.14 |
3.5.16 |
| spring-cloud |
2025.0.2 |
2025.0.3 |
| spring-framework |
6.2.18 |
6.2.19 |
| sa-token |
1.45.0 |
1.46.0 |
| mybatis-plus |
3.5.16 |
3.5.17 |
| hutool |
5.8.44 |
5.8.47 |
| fastjson2 |
2.0.62 |
2.0.65 |
| nacos |
3.2.1 |
3.2.4 |
| spring-boot-admin |
3.5.9 |
3.5.11 |
| guava |
33.6.0-jre |
33.7.1-jre |
| springdoc-openapi |
2.8.5 |
2.8.17 |
| knife4j |
4.5.0 |
移除(替换为 NextDoc4j 1.4.1) |
四、优化与修复(批处理相关)
SuperManager 接口及实现改用 CrudRepository 替代 ServiceImpl,新增批量保存及更新方法
SuperCacheManagerImpl 批处理方法返回值改为 int,用于返回 SQL 执行结果
SuperServiceImpl 调用批量保存方法时增加默认批次大小参数
- 删除
DefUserManagerImpl 中重写的 removeBatchByIds 方法
DictServiceImpl 中 MybatisEnumTypeHandler 判断枚举类型替换为 EnumUtils
- application.yml 关闭 mybatis-plus banner 显示
五、前端
- feat(layout):优化 Logo 主题,适应不同区域背景
项目地址
- https://github.com/dromara/lamp-cloud
- https://gitee.com/dromara/lamp-cloud
- https://gitcode.com/dromara/lamp-cloud
关于 lamp
灯灯 (简称灯, 英文名:lamp),她是一个项目集,为满足高内聚低耦合设计原则,将一个大项目拆解为以下几个子项目:
-
lamp-util:后端工具集
-
lamp-cloud:基于 Spring Cloud 实现的后台
-
lamp-boot:基于 Spring Boot 实现的后台
-
lamp-job:基于 xxl-job 集成本项目的分布式定时任务
-
lamp-generator:代码生成器
-
lamp-web:前端
lamp-cloud 简介
lamp-cloud是基于SpringCloudAlibaba、 SpringCloud、 SpringBoot 开发的微服务中后台快速开发平台,支持 jdk17、jdk11和jdk8,专注于多租户 (SaaS 架构) 解决方案,亦可作为普通项目(非 SaaS 架构)的基础开发框架使用,目前已实现 数据库隔离、字段隔离 等租户隔离方案以及非租户隔离的解决方案。
她拥有自研 RBAC(基于租户应用的角色权限控制体系)、网关统一鉴权、数据权限、优雅缓存解决方案、防缓存击穿、前后端统一表单校验、字典数据自动回显、可视化前后端代码生成器、支持多种文件存储、支持多种短信邮件发送接口、灰度发布、防 XSS 攻击、防 SQL 注入、分布式事务、分布式定时任务等功能;支持多业务系统并行开发, 支持多服务并行开发,是中后台系统开发脚手架的最佳选择。
lamp-cloud 代码简洁,注释齐全,架构清晰,非常适合个人学习以及中小企业作为基础框架使用。采用 Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking 等主要框架和中间件。本项目旨在实现基础框架能力,不涉及具体业务。