package com.threeclear.mobilelaw.config;
import com.baomidou.dynamic.datasource.aop.DynamicDatasourceNamedInterceptor;
import com.baomidou.dynamic.datasource.processor.DsProcessor;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.aop.Advisor;
import org.springframework.aop.aspectj.AspectJExpressionPointcut;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
@Configuration
@MapperScan("xxx.dao")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
@Bean
public DynamicDatasourceNamedInterceptor dsPolluteAdvice(DsProcessor dsProcessor) {
DynamicDatasourceNamedInterceptor interceptor = new DynamicDatasourceNamedInterceptor(dsProcessor);
Map<String, String> patternMap = new HashMap<>();
patternMap.put("*", "test");
interceptor.addPatternMap(patternMap);
return interceptor;
}
@Bean
public DynamicDatasourceNamedInterceptor dsLawlibraryAdvice(DsProcessor dsProcessor) {
DynamicDatasourceNamedInterceptor interceptor = new DynamicDatasourceNamedInterceptor(dsProcessor);
Map<String, String> patternMap = new HashMap<>();
patternMap.put("*", "test");
interceptor.addPatternMap(patternMap);
return interceptor;
}
@Bean
public Advisor dsLawlibraryAdviceAdvisor(DynamicDatasourceNamedInterceptor dsLawlibraryAdvice) {
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
pointcut.setExpression("execution (* xx..dao.*.*(..))");
return new DefaultPointcutAdvisor(pointcut, dsLawlibraryAdvice);
}
@Bean
public Advisor dsPolluteAdviceAdvisor(DynamicDatasourceNamedInterceptor dsPolluteAdvice) {
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
pointcut.setExpression("execution (* xx..*(..))");
return new DefaultPointcutAdvisor(pointcut, dsPolluteAdvice);
}
}
mybatis plus aop配置动态切换数据源
最新推荐文章于 2025-03-04 19:24:35 发布
本文介绍了一个使用MyBatis Plus的配置类,该配置类包括了分页拦截器的设置和动态数据源的支持。通过自定义拦截器实现对MySQL数据库操作的自动分页,并为不同业务场景配置了动态数据源切换。
4131

被折叠的 条评论
为什么被折叠?



