| @ -1,45 +1,66 @@ | |||||
| package com.hxhq.common.core.config; | package com.hxhq.common.core.config; | ||||
| import com.baomidou.mybatisplus.annotation.DbType; | 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.BlockAttackInnerInterceptor; | ||||
| import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; | import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; | ||||
| import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; | import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; | ||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||
| import org.springframework.context.annotation.Configuration; | import org.springframework.context.annotation.Configuration; | ||||
| import org.springframework.transaction.annotation.EnableTransactionManagement; | |||||
| /** | /** | ||||
| * @author memory | * @author memory | ||||
| */ | */ | ||||
| @Configuration | @Configuration | ||||
| @EnableTransactionManagement(proxyTargetClass = true) | |||||
| public class MyBatisPlusConfig { | 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(); | return new OptimisticLockerInnerInterceptor(); | ||||
| } | } | ||||
| /** | /** | ||||
| * 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html | * 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html | ||||
| */ | */ | ||||
| public BlockAttackInnerInterceptor blockAttackInnerInterceptor() { | |||||
| public BlockAttackInnerInterceptor blockAttackInnerInterceptor() | |||||
| { | |||||
| return new BlockAttackInnerInterceptor(); | return new BlockAttackInnerInterceptor(); | ||||
| } | } | ||||
| @Bean | |||||
| public MetaObjectHandler metaObjectHandler(){ | |||||
| return new BaseMetaObjectHandler(); | |||||
| } | |||||
| } | } | ||||