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; } }