| @ -1,45 +1,66 @@ | |||
| package com.hxhq.common.core.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.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; | |||
| /** | |||
| * @author memory | |||
| */ | |||
| @Configuration | |||
| @EnableTransactionManagement(proxyTargetClass = true) | |||
| 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 | |||
| */ | |||
| @Bean | |||
| public PaginationInnerInterceptor paginationInterceptor() { | |||
| PaginationInnerInterceptor paginationInterceptor = new PaginationInnerInterceptor(); | |||
| // 设置请求的页面大于最大页后是否进行回滚, true回滚, false继续 | |||
| paginationInterceptor.setOverflow(false); | |||
| // 设置最大单页限制数量, 默认 500 条, -1 不受限制 | |||
| paginationInterceptor.setDbType(DbType.MYSQL); | |||
| paginationInterceptor.setMaxLimit(-1L); | |||
| return paginationInterceptor; | |||
| 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 | |||
| */ | |||
| @Bean | |||
| public OptimisticLockerInnerInterceptor optimisticLockerInterceptor() { | |||
| public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() | |||
| { | |||
| return new OptimisticLockerInnerInterceptor(); | |||
| } | |||
| /** | |||
| * 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html | |||
| */ | |||
| public BlockAttackInnerInterceptor blockAttackInnerInterceptor() { | |||
| public BlockAttackInnerInterceptor blockAttackInnerInterceptor() | |||
| { | |||
| return new BlockAttackInnerInterceptor(); | |||
| } | |||
| @Bean | |||
| public MetaObjectHandler metaObjectHandler(){ | |||
| return new BaseMetaObjectHandler(); | |||
| } | |||
| } | |||