package com.qs.serve.common.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; import com.qs.serve.common.framework.mybatis.handler.SysMetaHandler; import com.qs.serve.common.framework.mybatis.handler.SysTenantHandler; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author YenHex * @since 2022/3/1 */ @MapperScan("com.qs.serve.modules.*.mapper") @Configuration(proxyBeanMethods = false) public class MyBatisConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 翻页拦截器 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 多租户、乐观锁等配置拦截 //interceptor.addInnerInterceptor(buildTenantHandler()); // 添加防止全表更新与删除拦截器 interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor()); return interceptor; } @Bean public MetaObjectHandler sysMetaHandler(){ return new SysMetaHandler(); } public TenantLineInnerInterceptor buildTenantHandler(){ String[] ignoreTable = new String[]{ "sys_user", "sys_user_tenant", "sys_permit", "sys_tenant", "wx_app", "sys_menu", "sys_menu_permit" }; SysTenantHandler sysTenantHandler = new SysTenantHandler(ignoreTable); return new TenantLineInnerInterceptor(sysTenantHandler); } }