首页 > 开源 > lamp-cloud 5.10.1 发布,专注多租户解决方案

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

OSChina资讯 2026-10-09 11:15 6 阅读 查看原文

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};新增:
nextdoc4j:
  enabled: true
  auth:
    enabled: true
    password: lamp        # 文档访问密码,生产环境务必修改
  1. 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: 开放平台
  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 等主要框架和中间件。本项目旨在实现基础框架能力,不涉及具体业务。