MybatisPlusConfig.java 1.93 KB
Newer Older
liqin's avatar
liqin committed
1
package cn.chnmuseum.party.conf;
liqin's avatar
liqin committed
2

liqin's avatar
liqin committed
3
import cn.chnmuseum.party.common.mybatis.MyLogicSqlInjector;
liqin's avatar
liqin committed
4 5 6
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
liqin's avatar
liqin committed
7 8
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
liqin's avatar
liqin committed
9
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
liqin's avatar
liqin committed
10 11 12 13 14 15
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
liqin's avatar
liqin committed
16
@MapperScan("cn.chnmuseum.party.mapper*")
liqin's avatar
liqin committed
17
@EnableConfigurationProperties(MybatisPlusProperties.class)
liqin's avatar
liqin committed
18 19
public class MybatisPlusConfig {

liqin's avatar
liqin committed
20 21 22 23
    /**
     * mybatis-plus乐观锁插件
     */
    @Bean
liqin's avatar
liqin committed
24
    public OptimisticLockerInnerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInnerInterceptor(); }
liqin's avatar
liqin committed
25

liqin's avatar
liqin committed
26 27 28
    /**
     * 攻击SQL阻断解析器,防止全表更新与删除
     */
liqin's avatar
liqin committed
29
    @Bean
liqin's avatar
liqin committed
30
    public BlockAttackInnerInterceptor blockAttackInnerInterceptor() { return new BlockAttackInnerInterceptor(); }
liqin's avatar
liqin committed
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

    /**
     * 自定义 SqlInjector
     * 里面包含自定义的全局方法
     */
    @Bean
    public MyLogicSqlInjector myLogicSqlInjector() {
        return new MyLogicSqlInjector();
    }

    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
liqin's avatar
liqin committed
50 51

}