1. 创建配置类

1.1. 数据源一

@Configuration
@MapperScan(basePackages = "com.test.aaa.db.service.repository",sqlSessionFactoryRef = "aaaMysqlSqlSessionFactory"
)
public class AaaMysqlConfig {@ConfigurationProperties(prefix = "spring.datasource.aaa")@Primary@Bean("aaaMysqlDataSource")public DataSource mysqlDataSource(){return DataSourceBuilder.create().build();}@Bean("aaaMysqlSqlSessionFactory")@Primarypublic SqlSessionFactory sqlSessionFactory(@Qualifier("aaaMysqlDataSource") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource);sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapping/*Mapper.xml"));return sqlSessionFactoryBean.getObject();}@Bean("aaaMysqlSqlSessionTemplate")@Primarypublic SqlSessionTemplate sqlSessionTemplate(@Qualifier("aaaMysqlSqlSessionFactory")SqlSessionFactory sqlSessionFactory) throws Exception {SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);return sqlSessionTemplate;}@Bean("aaaMysqlTransactionManager")public DataSourceTransactionManager transactionManager(@Qualifier("aaaMysqlDataSource") DataSource dataSource){DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dataSource);return transactionManager;}
}

1.2. 数据源二

@Configuration
@MapperScan(basePackages = "com.test.bbb.aggregation.dao.db",sqlSessionFactoryRef = "bbbMysqlSqlSessionFactory"
)
public class BbbMysqlConfig {@ConfigurationProperties(prefix = "spring.datasource.bbb")@Bean("bbbMysqlDataSource")public DataSource mysqlDataSource(){return DataSourceBuilder.create().build();}@Bean("bbbMysqlSqlSessionFactory")public SqlSessionFactory sqlSessionFactory(@Qualifier("bbbMysqlDataSource") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource);sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapping/*Mapper.xml"));return sqlSessionFactoryBean.getObject();}@Bean("bbbMysqlSqlSessionTemplate")public SqlSessionTemplate sqlSessionTemplate(@Qualifier("bbbMysqlSqlSessionFactory")SqlSessionFactory sqlSessionFactory) throws Exception {SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);return sqlSessionTemplate;}@Bean("bbbMysqlTransactionManager")public DataSourceTransactionManager transactionManager(@Qualifier("bbbMysqlDataSource") DataSource dataSource){DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dataSource);return transactionManager;}
}

1.3. 配置文件

spring.datasource.aaa.jdbc-url=jdbc:mysql://{{ip}}:3306/{{database}}?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT&useSSL=false
spring.datasource.aaa.username={{userName}}
spring.datasource.aaa.password={{password}}spring.datasource.bbb.jdbc-url=jdbc:mysql://{{ip}}:3306/{{database}}?characterEncoding=utf8
spring.datasource.bbb.username={{userName}}
spring.datasource.bbb.password={{password}}

2. 注意

  1. 配置类中需要有个类为主配置 即加 @Primary
  2. 多数据源时 url配置改为 jdbc-url
  3. 注意启动类中不要再有 @MapperScan 注解
  4. org.mybatis.spring.annotation.MapperScannerRegistrar是MapperScan 注解的处理类 可以debug一下
  5. 解析mapper.xml配置路径的时候可能会不对,可以考虑单独解析。
        Resource[] mappingLocations = ArrayUtils.addAll(new PathMatchingResourcePatternResolver().getResources("classpath:mapping/*.xml"),new PathMatchingResourcePatternResolver().getResources("classpath:mapping/ext/*.xml"));sqlSessionFactoryBean.setMapperLocations(mappingLocations);

mybatis多数据源配置相关推荐

  1. MyBatis多数据源配置(读写分离)

    MyBatis多数据源配置(读写分离) 首先说明,本文的配置使用的最直接的方式,实际用起来可能会很麻烦. 实际应用中可能存在多种结合的情况,你可以理解本文的含义,不要死板的使用. 多数据源的可能情况 ...

  2. spring mybatis 多数据源配置 jeesite 多数据源配置

    spring mybatis 多数据源配置 jeesite 多数据源配置 一.情景描述 在系统数据达到一定的访问量时,遇到单个数据库瓶颈,所以需要扩展数据库,启用第二个数据源资源,项目架构变成 一个服 ...

  3. SpringBoot2.1.9 Mybatis多数据源配置

    一.配置文件 目录 application.yaml spring:application:name: multi-datasourceprofiles:active: devdatasource:t ...

  4. Spring集成Mybatis多数据源配置

    既然在整理Mybatis那就把经常用的这个多数据源的笔记也整一下吧. Spring集成Mybatis在之前就已经提到了.Spring集成Mybatis 集成Mybatis多数据源有两种方式: 1.创建 ...

  5. springmvc+mybatis多数据源配置,AOP注解动态切换数据源

    springmvc与springboot没多大区别,springboot一个jar包配置几乎包含了所有springmvc,也不需要繁琐的xml配置,springmvc需要配置多种jar包,需要繁琐的x ...

  6. springMVC mybatis 多数据源配置

    1.ssm(spring+springMVC+mybatis)环境搭建(略) 2.工程目录及多数据源涉及的文件 1).DataSourceContextHolder.java package com. ...

  7. Spring Cloud + Mybatis 多数据源配置

    最近接手了一个Spring Cloud + Mybatis架构的项目,本身用的是sqlserver的数据库,因为业务需要,需要连接另一个项目的mysql数据库,于是就想到了多数据源配置,费了些时间,终 ...

  8. SpringBoot mybatis多数据源配置,记录下我磕磕碰碰的三个月找工作经历

    */ public class DynamicDataSource extends AbstractRoutingDataSource { /** 取得当前使用哪个数据源 @return */ @Ov ...

  9. springboot+mybatis多数据源配置

    目录 1.前言 2.多数据源配置 2.1  AbstractRoutingDataSource 2.2.首先maven依赖 2.3 数据源配置 2.4 mybatis配置 2.5 设置数据源的路由ke ...

  10. SpringBoot Mybatis多数据源配置

    参考资料: Spring Boot 2.x基础教程:MyBatis的多数据源配置 目录 一. 配置文件 二. 多数据源配置类 三. 多数据源Mybatis配置 3.1 primary数据源配置 3.2 ...

最新文章

  1. Android Activity从右边到左边跳转(overridePendingTransition)
  2. VMware虚拟机三种联网方法及原理
  3. Eclipse 安装 SVN 插件
  4. 【Java自顶向下】HashMap面试题(2021最新版)
  5. 使用OpenCV画折线图
  6. BZOJ4825: [Hnoi2017]单旋(Splay)
  7. Mac上VScode使用clang-format格式化c++代码
  8. Oracle 统计信息收集
  9. 【信号与系统|吴大正】4:信号分解、傅里叶变换与信号谱(下)
  10. 【SpringMVC】编程式事务控制,基于 XML 的声明式事务控制,基于注解的声明式事务控制
  11. 12月18日科技资讯|支付宝、微信回应3D面具破解人脸识别;ofo 否认「发币」;Kafka 2.4.0 发布
  12. 论文阅读笔记(7-1)---Supervised Contrastive Learning
  13. cJSON Note(4):转换字符串
  14. 学会map、reduce、filter这三个函数,让你Python代码看起来更有逼格!
  15. CDM计算机辅助,CDM方法学与CDM项目的.pdf
  16. 我的第二本译作《精通OpenStack》上架啦:书籍介绍和译者序
  17. FCKeditor源代码分析(一)-----fckeditor.js的中文注释分析(原创)
  18. 文本聚类平移算法的几点问题
  19. 1.腾讯轻服务器K3S环境配置
  20. python3计算双色球_Python3实战:双色球开奖

热门文章

  1. Zinnia - Django 博客框架
  2. 计算机毕业设计Java创新学分认证系统(源码+系统+mysql数据库+lw文档)
  3. mqtt 传文件断开连接的原因_mqtt服务器连上就断开
  4. 电子取证技术的三大方向
  5. serverStatus详解
  6. python selenium高级教程_selenium(python)教程
  7. 【汽车接口、公共汽车类与载重卡车类】
  8. 2014 ChinaJoy落下帷幕 十大年度热门事件盘点
  9. 【Stable Diffusion/NovelAI Diffusion的AMD GPU加速推理探索】
  10. 在安卓开发中,使用腾讯地图实现定位与导航功能