ruoyi 多租户 开启后针对某一条sql不适用多租户; 若依多租户sql规则修改

文章参考:多租户功能 | Ruoyi-TDesign

忽略租户

1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解:

@InterceptorIgnore(tenantLine = "true", dataPermission = "false")

此处注意事项 使用此注解如果需要开启数据权限 dataPermission = "false" 必须添加 mp的注解默认是忽略数据权限的 会导致数据权限失效

​​​

2.如果需要在业务层忽略多租户,可调用以下方法(推荐使用):

// 无返回值
TenantHelper.ignore(() -> { /*业务代码*/ });
// 有返回值
Class result = TenantHelper.ignore(() -> { return /*业务代码*/ });

3.使用注解忽略多租户

@Component
public class Test {

  @IgnoreTenant
  public void test() {}

}

### 创建新模块 在 RuoYi 框架的多租户环境中创建新模块涉及多个方面的工作,包括但限于导入必要的依赖项、新增模块定义以及配置 MyBatis-Plus 等操作[^2]。 对于具体的实现方式,在引入新的功能模块时,应当遵循以下指导原则: - **确保兼容性**:由于 RuoYi-Vue-Plus 是专门为分布式集群与多租户场景设计的版本,并且完全向后兼容原有的 RuoYi 框架,因此任何新开发的功能都应严格测试其与现有系统的适配情况[^1]。 - **数据隔离机制**:为了保障同租户间的数据安全性和独立性,每当涉及到数据库交互的部分——无论是读取还是写入——都需要加入 `tenantId` 字段作为筛选条件之一。这适用于基础 CRUD 操作,也涵盖了更复杂的业务逻辑处理过程[^3]。 - **权限控制调整**:考虑到各租户可能拥有各自独特的角色设定及其对应的资源访问范围,建议开发者仔细审查并适当扩展原有权限管理体系中的相关组件(如 RoleService),以便更好地支持跨租户的身份验证和授权需求。 #### 数据源管理策略 当面对多租户架构下的并发请求时,合理的数据源管理和调度显得尤为重要。通过自定义的数据源切换插件可以有效地解决这一挑战,允许应用程序依据传入请求所携带的特定上下文信息动态选择合适的目标数据库实例执行SQL语句[^4]。 ```java // 示例代码片段展示了一个简单的TenantDataSourceRouter类用于路由到正确的数据源 public class TenantDataSourceRouter extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() { return DynamicDataSourceContextHolder.getDataSourceType(); } } ``` 此部分的设计目标在于简化应用层面上对底层存储设施的操作复杂度的同时提高整体性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攀小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值