系统多租户使用
📄 系统多租户使用 _ PIGCLOUD
商业版
生态🔥
快速上手
前端部分
功能使用
- 📄 基础工具类库使用
- 📄 系统多租户使用
- 📄 swagger 接口文档
- 📄 knife4j 接口文档
- 📄 微信公众号模块使用
- 📄 本地文件系统使用
- 📄 minio 文件系统使用
- 📄 七牛文件系统使用
- 📄 阿里云文件系统使用
- 📄 腾讯云文件系统使用
- 📄 华为云文件系统使用
- 📄 支付宝支付使用
- 📄 微信支付使用
- 📄 聚合支付使用 👍
- 📄 系统按钮权限使用
- 📄 系统数据权限使用
- 📄 系统参数使用指南
- 📄 数据脱敏使用
- 📄 敏感词过滤使用
- 📄 系统缓存使用
- 📄 登录用户在线控制
- 📄 登录用户注册
- 📄 登录失败账号锁定
- 📄 登录强制重置密码
- 📄 钉钉、企微数据同步
- 📄 小程序登录接入使用
- 📄 社交登录使用
- 📄 CAS 登录使用
- 📄 企业微信登录使用
- 📄 钉钉登录使用
- 📄 网关限流功能使用
- 📄 quartz 定时任务使用
- 📄 报表设计 jimu 模块使用
- 📄 Flowable 协同办公模块使用
- 📄 大屏设计模块使用
- 📄 common-seata 分布式事务使用
- Sentinel 控制台使用
- 📄 common-xss 安全过滤使用
- 📄 common-gray 灰度路由使用
- 📄 common-idempotent 幂等使用
- 📄 common-excel 模块使用
- 📄 common-job 分布式任务使用
- 📄 common-datasource 多数据源使用
- 📄 common-websocket 模块使用
- 📄 common-sse 模块使用
- 📄 encrypt-api 接口加解密使用
- 📄 common-audit 字段审计使用
- 📄 sequence 分布式发号器使用
- 📄 sas 接口单元测试
- 📄 代码生成功能使用
- 📄 代码生成模板自定义
后端部分
扩展必看
生产部署
社区分享
更新日志
📄 系统多租户使用
pigcloud
PigX 多租户实现方式
- 多个租户共享同一个数据库(Database)和模式(Schema)
- 通过表中的 TenantID 字段区分不同租户的数据
- 系统会自动维护租户 ID,开发时无需手动处理

# 使用方法
# 1. 数据表配置
在需要支持多租户的表中添加 tenant_id 字段:

# 2. 租户隔离配置
有两种配置方式:
# 方式一:使用注解(v5.4+)
在实体类上添加注解:
1 |
|
# 方式二:YAML 配置
在对应微服务的 nacos 配置中添加:
1 | pigx: |
# 高级用法
# 手动切换租户
注意事项
禁止在实体对象中直接设置 tenant 字段,这会导致错误
正确的切换方式是使用 TenantContextHolder:
1 | TenantContextHolder.setTenantId(tenantId); |
# 跳过租户过滤
在需要查询所有租户数据时:
1 | TenantContextHolder.setTenantSkip(); |

示例:
# 域名自动匹配功能
当需要通过域名自动识别租户时:

在租户管理中配置租户对应的域名:

在前端开启域名匹配功能:
# 技术实现原理
系统基于 MyBatis-Plus 的多租户 SQL 解析器 (opens new window)实现,主要包含:
# 1. 租户 ID 传递
通过全局过滤器获取并存储租户 ID:
1 | public class TenantContextHolderFilter extends GenericFilterBean { |
# 2. 跨线程租户信息传递
使用阿里巴巴的 TransmittableThreadLocal 实现:
1 | public class TenantContextHolder { |

- 标题: 系统多租户使用
- 作者: PIGCLOUD
- 创建于 : 2024-01-01 00:00:00
- 更新于 : 2025-09-22 14:27:28
- 链接: https://anime-blog.52lin.site/📄 系统多租户使用 _ PIGCLOUD/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。

