Skip to content

Commit

Permalink
perf($MyBatisPlus): update interceptors
Browse files Browse the repository at this point in the history
[skip ci]
  • Loading branch information
johnnymillergh committed Dec 29, 2020
1 parent 66b30b0 commit 9e3ce5c
Showing 1 changed file with 35 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package com.jmsoftware.maf.authcenter.universal.configuration;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import lombok.val;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
Expand All @@ -18,18 +21,39 @@
@Configuration
@EnableTransactionManagement
public class MyBatisPlusConfiguration {
@Bean
public PaginationInnerInterceptor paginationInnerInterceptor() {
val paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
paginationInnerInterceptor.setMaxLimit(100L);
return paginationInnerInterceptor;
}

@Bean
public BlockAttackInnerInterceptor blockAttackInnerInterceptor() {
return new BlockAttackInnerInterceptor();
}

@Bean
public ConfigurationCustomizer configurationCustomizer() {
// 新的分页插件,一缓和二缓遵循 MyBatis 的规则。
// 需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
return configuration -> configuration.setUseDeprecatedExecutor(false);
}

/**
* Inject bean to enable pagination.
* Mybatis plus interceptor mybatis plus interceptor.
*
* @return bean for pagination
* @param paginationInnerInterceptor the pagination inner interceptor
* @param blockAttackInnerInterceptor the block attack inner interceptor
* @return the mybatis plus interceptor
* @see <a href='https://baomidou.com/guide/interceptor.html'>MybatisPlusInterceptor</a>
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
val paginationInterceptor = new PaginationInterceptor();
// Set maximum query record count
paginationInterceptor.setLimit(100L);
// Enable JSQL Parser Count Optimizing (for left join)
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
public MybatisPlusInterceptor mybatisPlusInterceptor(PaginationInnerInterceptor paginationInnerInterceptor,
BlockAttackInnerInterceptor blockAttackInnerInterceptor) {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
mybatisPlusInterceptor.addInnerInterceptor(blockAttackInnerInterceptor);
return mybatisPlusInterceptor;
}
}

0 comments on commit 9e3ce5c

Please sign in to comment.