疯狂的狮子li
2021-12-22 89de1beb6fe245eb0c9f96e68cbe5cd46877e7d1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
@@ -1,6 +1,9 @@
package com.ruoyi.framework.config;
import cn.hutool.core.net.NetUtil;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
@@ -10,6 +13,7 @@
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.ruoyi.common.core.mybatisplus.methods.InsertAll;
import com.ruoyi.framework.handler.CreateAndUpdateMetaObjectHandler;
import com.ruoyi.framework.interceptor.PlusDataPermissionInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -30,12 +34,21 @@
   @Bean
   public MybatisPlusInterceptor mybatisPlusInterceptor() {
      MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 数据权限处理
        interceptor.addInnerInterceptor(dataPermissionInterceptor());
      // 分页插件
      interceptor.addInnerInterceptor(paginationInnerInterceptor());
      // 乐观锁插件
      interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
      return interceptor;
   }
    /**
     * 数据权限拦截器
     */
    public PlusDataPermissionInterceptor dataPermissionInterceptor() {
        return new PlusDataPermissionInterceptor();
    }
   /**
    * 分页插件,自动识别数据库类型
@@ -79,24 +92,33 @@
      };
   }
    /**
     * 使用网卡信息绑定雪花生成器
     * 防止集群雪花ID重复
     */
    @Bean
    public IdentifierGenerator idGenerator() {
        return new DefaultIdentifierGenerator(NetUtil.getLocalhost());
    }
   /**
    * PaginationInnerInterceptor 分页插件,自动识别数据库类型
    * https://baomidou.com/guide/interceptor-pagination.html
    * https://baomidou.com/pages/97710a/
    * OptimisticLockerInnerInterceptor 乐观锁插件
    * https://baomidou.com/guide/interceptor-optimistic-locker.html
    * https://baomidou.com/pages/0d93c0/
    * MetaObjectHandler 元对象字段填充控制器
    * https://baomidou.com/guide/auto-fill-metainfo.html
    * https://baomidou.com/pages/4c6bcf/
    * ISqlInjector sql注入器
    * https://baomidou.com/guide/sql-injector.html
    * https://baomidou.com/pages/42ea4a/
    * BlockAttackInnerInterceptor 如果是对全表的删除或更新操作,就会终止该操作
    * https://baomidou.com/guide/interceptor-block-attack.html
    * https://baomidou.com/pages/f9a237/
    * IllegalSQLInnerInterceptor sql性能规范插件(垃圾SQL拦截)
    * IdentifierGenerator 自定义主键策略
    * https://baomidou.com/guide/id-generator.html
    * https://baomidou.com/pages/568eb2/
    * TenantLineInnerInterceptor 多租户插件
    * https://baomidou.com/guide/interceptor-tenant-line.html
    * https://baomidou.com/pages/aef2f2/
    * DynamicTableNameInnerInterceptor 动态表名插件
    * https://baomidou.com/guide/interceptor-dynamic-table-name.html
    * https://baomidou.com/pages/2a45ff/
    */
}