diff --git a/exercise-mis/src/main/java/com/jmsoftware/maf/exercisemis/universal/configuration/MyBatisPlusConfiguration.java b/exercise-mis/src/main/java/com/jmsoftware/maf/exercisemis/universal/configuration/MyBatisPlusConfiguration.java
index 7b3489d8..e749aff1 100644
--- a/exercise-mis/src/main/java/com/jmsoftware/maf/exercisemis/universal/configuration/MyBatisPlusConfiguration.java
+++ b/exercise-mis/src/main/java/com/jmsoftware/maf/exercisemis/universal/configuration/MyBatisPlusConfiguration.java
@@ -1,7 +1,10 @@
package com.jmsoftware.maf.exercisemis.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;
@@ -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 MybatisPlusInterceptor
*/
@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;
}
}
diff --git a/muscle-mis/src/main/java/com/jmsoftware/maf/musclemis/universal/configuration/MyBatisPlusConfiguration.java b/muscle-mis/src/main/java/com/jmsoftware/maf/musclemis/universal/configuration/MyBatisPlusConfiguration.java
index 53b4c2db..cdac3b16 100644
--- a/muscle-mis/src/main/java/com/jmsoftware/maf/musclemis/universal/configuration/MyBatisPlusConfiguration.java
+++ b/muscle-mis/src/main/java/com/jmsoftware/maf/musclemis/universal/configuration/MyBatisPlusConfiguration.java
@@ -1,7 +1,10 @@
package com.jmsoftware.maf.musclemis.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;
@@ -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 MybatisPlusInterceptor
*/
@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;
}
}