找回密码
 立即注册
搜索
查看: 116|回复: 6

lamp-cloud 5.10.1 发布,专注多租户解决方案

[复制链接]

主题

0

回帖

0

积分

积分
0
发表于 2026-10-9 11:30:07 | 显示全部楼层 |阅读模式
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 源码
• :warning:️ 注意:升级 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"}

升级时需要做的配置调整

1. Nacos 公共配置:删除 knife4j: 块;lamp.swagger: 改为 lamp.nextdoc4j:;springdoc 中 ${knife4j.enable} 引用改为 ${nextdoc4j.enabled};新增:




  1. nextdoc4j:
  2.   enabled: true
  3.   auth:
  4.     enabled: true
  5.     password: lamp        # 文档访问密码,生产环境务必修改
复制代码


1. Nacos 网关配置(lamp-gateway-server.yml) 新增聚合配置:


  1. nextdoc4j:
  2.   enabled: true
  3.   auth:
  4.     enabled: true
  5.     password: lamp
  6.   gateway:
  7.     auto-discovery: true
  8.     service-swagger-config-enabled: true   # 聚合各服务所有分组
  9.     include-patterns:                      # 按网关实际路由 id 填写
  10.       - base
  11.       - system
  12.       - oauth
  13.       - sopadmin
  14.     name-mappings:
  15.       base: 基础服务
  16.       system: 系统服务
  17.       oauth: 认证服务
  18.       openapi: 开放平台
复制代码

1. 访问地址:各服务 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 主题,适应不同区域背景


项目地址

1. https://github.com/dromara/lamp-cloud
2. https://gitee.com/dromara/lamp-cloud
3. https://gitcode.com/dromara/lamp-cloud



关于 lamp

灯灯 (简称灯, 英文名:lamp),她是一个项目集,为满足高内聚低耦合设计原则,将一个大项目拆解为以下几个子项目:

1.
lamp-util:后端工具集

2.
lamp-cloud:基于 Spring Cloud 实现的后台

3.
lamp-boot:基于 Spring Boot 实现的后台

4.
lamp-job:基于 xxl-job 集成本项目的分布式定时任务

5.
lamp-generator:代码生成器

6.
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 等主要框架和中间件。本项目旨在实现基础框架能力,不涉及具体业务。

原文链接

打赏作者

当前余额:0 Token,打赏后立即到账

主题

0

回帖

0

积分

积分
0
发表于 2026-10-9 11:45:01 | 显示全部楼层
前排学习,感谢楼主整理cloud相关的内容。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-9 12:15:01 | 显示全部楼层
学到了,cloud这块之前一直似懂非懂,看完这篇清晰多了。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-9 12:45:01 | 显示全部楼层
写得很详细,感谢楼主的整理,辛苦了。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-9 13:15:01 | 显示全部楼层
好帖,先顶后看,慢慢消化。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-9 13:45:01 | 显示全部楼层
已阅,受益匪浅,楼主加油更新。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-9 14:15:01 | 显示全部楼层
lamp在实际项目里有没有踩过坑?想听楼主展开讲讲。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

{ template common/footer}