package com.ruoyi.framework.config; 
 | 
  
 | 
import com.baomidou.mybatisplus.annotation.DbType; 
 | 
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; 
 | 
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor; 
 | 
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; 
 | 
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; 
 | 
import org.springframework.context.annotation.Bean; 
 | 
import org.springframework.context.annotation.Configuration; 
 | 
import org.springframework.transaction.annotation.EnableTransactionManagement; 
 | 
  
 | 
/** 
 | 
 * Mybatis Plus 配置 
 | 
 * 
 | 
 * @author ruoyi 
 | 
 */ 
 | 
@EnableTransactionManagement(proxyTargetClass = true) 
 | 
@Configuration 
 | 
public class MybatisPlusConfig 
 | 
{ 
 | 
    @Bean 
 | 
    public MybatisPlusInterceptor mybatisPlusInterceptor() 
 | 
    { 
 | 
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); 
 | 
        // 分页插件 
 | 
        interceptor.addInnerInterceptor(paginationInnerInterceptor()); 
 | 
        // 乐观锁插件 
 | 
        interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor()); 
 | 
        // 阻断插件 
 | 
        interceptor.addInnerInterceptor(blockAttackInnerInterceptor()); 
 | 
        return interceptor; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 分页插件,自动识别数据库类型 https://baomidou.com/guide/interceptor-pagination.html 
 | 
     */ 
 | 
    public PaginationInnerInterceptor paginationInnerInterceptor() 
 | 
    { 
 | 
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); 
 | 
        // 设置数据库类型为mysql 
 | 
        paginationInnerInterceptor.setDbType(DbType.MYSQL); 
 | 
        // 设置最大单页限制数量,默认 500 条,-1 不受限制 
 | 
        paginationInnerInterceptor.setMaxLimit(-1L); 
 | 
        return paginationInnerInterceptor; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 乐观锁插件 https://baomidou.com/guide/interceptor-optimistic-locker.html 
 | 
     */ 
 | 
    public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() 
 | 
    { 
 | 
        return new OptimisticLockerInnerInterceptor(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html 
 | 
     */ 
 | 
    public BlockAttackInnerInterceptor blockAttackInnerInterceptor() 
 | 
    { 
 | 
        return new BlockAttackInnerInterceptor(); 
 | 
    } 
 | 
} 
 |