Skip to content

Commit eaf1479

Browse files
committed
fix: 解决 mybatis plus 插件和 pageHelper 插件顺序问题
1 parent 7c6da5d commit eaf1479

1 file changed

Lines changed: 21 additions & 10 deletions

File tree

  • common/plugin/mybatis/src/main/java/com/github/cadecode/uniboot/common/plugin/mybatis/config

common/plugin/mybatis/src/main/java/com/github/cadecode/uniboot/common/plugin/mybatis/config/MybatisConfig.java

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,20 @@
55
import com.github.cadecode.uniboot.common.plugin.mybatis.aspect.DataScopeAspect;
66
import com.github.cadecode.uniboot.common.plugin.mybatis.aspect.DataScopeAspect.DataScopeParam;
77
import com.github.cadecode.uniboot.common.plugin.mybatis.handler.DataScopePermissionHandler;
8+
import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration;
9+
import lombok.RequiredArgsConstructor;
810
import org.apache.ibatis.executor.Executor;
911
import org.apache.ibatis.mapping.BoundSql;
1012
import org.apache.ibatis.mapping.MappedStatement;
1113
import org.apache.ibatis.session.ResultHandler;
1214
import org.apache.ibatis.session.RowBounds;
13-
import org.springframework.context.annotation.Bean;
15+
import org.apache.ibatis.session.SqlSessionFactory;
16+
import org.springframework.beans.factory.InitializingBean;
17+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
1418
import org.springframework.context.annotation.Configuration;
1519

1620
import java.sql.SQLException;
21+
import java.util.List;
1722
import java.util.Objects;
1823

1924
/**
@@ -22,15 +27,19 @@
2227
* @author Cade Li
2328
* @date 2022/2/16
2429
*/
30+
@RequiredArgsConstructor
31+
@AutoConfigureAfter(PageHelperAutoConfiguration.class)
2532
@Configuration
26-
public class MybatisConfig {
33+
public class MybatisConfig implements InitializingBean {
2734

28-
/**
29-
* Mybatis Plus 插件配置
30-
*/
31-
@Bean
32-
public MybatisPlusInterceptor mybatisPlusInterceptor() {
35+
private final List<SqlSessionFactory> sqlSessionFactoryList;
36+
37+
@Override
38+
public void afterPropertiesSet() {
3339
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
40+
// 分页插件,动态获取数据库类型
41+
// interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
42+
3443
// 数据权限插件
3544
DataPermissionInterceptor dataPermissionInterceptor = new DataPermissionInterceptor(new DataScopePermissionHandler()) {
3645
@Override
@@ -45,8 +54,10 @@ public void beforeQuery(Executor executor, MappedStatement ms, Object parameter,
4554
};
4655
interceptor.addInnerInterceptor(dataPermissionInterceptor);
4756

48-
// 添加分页插件,动态获取数据库类型
49-
// interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
50-
return interceptor;
57+
// 加入插件
58+
for (SqlSessionFactory sqlSessionFactory : sqlSessionFactoryList) {
59+
org.apache.ibatis.session.Configuration configuration = sqlSessionFactory.getConfiguration();
60+
configuration.addInterceptor(interceptor);
61+
}
5162
}
5263
}

0 commit comments

Comments
 (0)