MybatisPlus 本身具有配置多数据源 和分页查询 的功能
@Slf4j @Configuration public class MybatisConfiguration { /** * 分页插件 */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MysqL)); return interceptor; } }
若自定义多数据源 则需要在 MybatissqlSessionfactorybean 添加拦截器
package com.dcsyun.base.ability.config; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.spring.MybatissqlSessionfactorybean; import org.apache.ibatis.session.sqlSessionFactory; import org.mybatis.spring.sqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; @Configuration @MapperScan(basePackages = {"com.zhengcj.demo.dao.devicecontrol"}, sqlSessionTemplateRef = "template1") public class DataSource1Config { @Autowired private MybatisPlusInterceptor plusInterceptor; @Bean(name = "db1") @ConfigurationProperties(prefix = "spring.datasource.db1") public DruidDataSource druidDataSource1() { return DruidDataSourceBuilder.create().build();//按默认配置就行了。 } @Bean(name = "factory1") public sqlSessionFactory sqlSessionFactory(@Qualifier("db1") DruidDataSource dataSource) throws Exception { MybatissqlSessionfactorybean factorybean = new MybatissqlSessionfactorybean(); factorybean.setDataSource(dataSource); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); factorybean.setMapperLocations(resolver.getResources("classpath*:mapper/db1/**Mapper.xml")); factorybean.setPlugins(plusInterceptor); return factorybean.getobject(); } @Bean(name = "template1") public sqlSessionTemplate sqlSessionTemplate(@Qualifier("factory1") sqlSessionFactory sqlSessionFactory) { return new sqlSessionTemplate(sqlSessionFactory); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。