saas系统:巧用MyBatisPlus,成功实现多租户功能

本文介绍了多租户的概念和应用场景,特别是在SaaS系统中的数据隔离需求。通过分享一个实际案例,展示了如何利用Spring Boot和MyBatisPlus在共享数据库、共享数据架构的方案下,实现多租户功能,包括自动添加租户ID以及特定SQL过滤的处理方式。同时,文章提到了两种过滤特定SQL的方法,并指出在当前企业内卷环境下,掌握多租户技术对职业发展的重要性。
摘要由CSDN通过智能技术生成

我先解释一下什么叫多租户,什么场景下使用多租户。

54213ab412dbee65c470ba1f8bd02a86.jpeg

多租户是一种软件架构技术,在多用户的环境下,共有同一套系统,并且要注意数据之间的隔离性。

举个实际例子:小编曾经开发过一套H5程序,这套程序应用在不同医院的APP上,当医院患者下载医院APP,并且进入相对应的H5页面,APP则会把用户相关数据传输到小编这里。在传输的时候需要带上医院标识(租户ID),以便小编将数据进行隔离。

当不同的租户使用同一套程序,这里就需要考虑一个数据隔离的情况。

数据隔离有三种方案:

  1. 独立数据库:简单来说就是一个租户使用一个数据库,这种数据隔离级别最高,安全性最好,但是提高成本。
  2. 共享数据库、隔离数据架构:多租户使用同一个数据裤,但是每个租户对应一个Schema(数据库user)。
  3. 共享数据库、共享数据架构:使用同一个数据库,同一个Schema,但是在表中增加了租户ID的字段,这种共享数据程度最高,隔离级别最低。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

这里采用方案三,即共享数据库,共享数据架构,因为这种方案服务器成本最低,但是提高了开发成本。

所以MP就提供了一种多租户的解决方案,实现方式是基于分页插件进行实现的,具体实现代码如下:

@Configuration
public  class MyBatisPlusConfig {
     /**
     * 分页插件
     *
     * @return
     */

     @Bean
     public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor =  new PaginationInterceptor();

         // 创建SQL解析器集合
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值