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.1import - 显式 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 源码 - :warning:️ 注意:升级 spring-boot 版本时需同步修改
spring-boot-dependencies.version属性
- springdoc 2.8.5 → 2.8.17(
后端变更
- 网关:移除
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 等主要框架和中间件。本项目旨在实现基础框架能力,不涉及具体业务。