代码基于 SpringBoot + SpringDataJDBC + Mybatis 架构

介绍使用多数据源的关键的一些类:AbstractRoutingDataSource继承实现determineCurrentLookupKey方法,此方法主要返回AbstractRoutingDataSource抽象类的多数据源的Key值

提醒:这里主要提醒一下,Spring Aop(AspectJ实现)的拦截方法,@Before@After注解之类的方法的参数可以具有一个 org.aspectj.lang.JoinPoint 类型的形参,而@Around类需要是ProceedingJoinPoint此形参,不要混用(官方说明来源:https://docs.spring.io/spring/docs/5.2.6.RELEASE/spring-framework-reference/core.html#aop-ataspectj-advice-params

首先展示下配置文件:application.yml

spring:
datasource:
one:
username: root
password: root
jdbc-url: jdbc:mariadb://localhost:3306/myschool
driver-class-name: org.mariadb.jdbc.Driver
two:
username: root
password: root
jdbc-url: jdbc:mariadb://localhost:3306/myschool
driver-class-name: org.mariadb.jdbc.Driver

配置多个数据源:

@Bean(value = "db1")
@ConfigurationProperties(prefix = "spring.datasource.one")
public HikariDataSource dataSource() {
HikariDataSource dataSource = new HikariDataSource();
return dataSource;
}
@Bean(value = "db2")
@ConfigurationProperties(prefix = "spring.datasource.two")
public HikariDataSource dataSource2() {
HikariDataSource dataSource = new HikariDataSource();
return dataSource;
}

下面是多数据源的配置:

动态数据源实现如下:

获取数据源的目标位置:DataSourceTransactionManager类的doBegin方法

具体可以下载Demo试试:https://github.com/starSmallDream/MySpringDataJdbcAndMybatisByManyDataSource.git

SpringDataJdbc多数据源的更多相关文章

  1. springmvc 多数据源 SSM java redis shiro ehcache 头像裁剪

    获取下载地址   QQ 313596790  A 调用摄像头拍照,自定义裁剪编辑头像 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技术:31359679 ...

  2. springmvc SSM shiro redis 后台框架 多数据源 代码生成器

    A集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单 下载地址    ; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类 ...

  3. springmvc SSM 多数据源 shiro redis 后台框架 整合

    A集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单 下载地址    ; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类 ...

  4. 基于注解的Spring多数据源配置和使用

    前一段时间研究了一下spring多数据源的配置和使用,为了后期从多个数据源拉取数据定时进行数据分析和报表统计做准备.由于之前做过的项目都是单数据源的,没有遇到这种场景,所以也一直没有去了解过如何配置多 ...

  5. spring boot(七):springboot+mybatis多数据源最简解决方案

    说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务.我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解 ...

  6. spring 多数据源一致性事务方案

    spring 多数据源配置 spring 多数据源配置一般有两种方案: 1.在spring项目启动的时候直接配置两个不同的数据源,不同的sessionFactory.在dao 层根据不同业务自行选择使 ...

  7. [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合

    [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合 Datasets can often contain components of that require differe ...

  8. C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)

    目       录 工业物联网和集成系统解决方案的技术路线... 1 前言... 1 第一章           系统架构... 3 1.1           硬件构架图... 3 1.2      ...

  9. Tomcat数据源(DataSource)简介

    JDBC2.0提供了javax.sql.DataSource接口,它负责建立与数据库的连接,在应用程序中访问数据库时不必编写连接数据库的代码,可以直接从数据源获得数据库连接 1.数据库和连接池 在Da ...

随机推荐

  1. [数据结构]一元n次多项式的抽象数据类型

    一.问题描述 一元n次多项式是代数学中经常出现的代数式,对于一元n次多项式的操作有很重要的实际意义.由于一个一元n次多项式最多有n+1项,且互不相关,所以可以用一个线性表来保存一个多项式,从前至后次数 ...

  2. 还在争论WPS、Office哪个更好用?这款云办公工具才是真的香!

    最近,金山WPS更新狠狠的刷了一波存在感.尤其是xlookup函数,着实是有被惊艳到,也让大家看到了国产办公软件的进步.甚至有人认为WPS已经超越了传统的办公软件--微软office.WPS的优点固然 ...

  3. 2021顶级的开源 BI(商业智能)软件和报表工具

    在这个信息化时代,每分每秒都产生海量数据.在海量数据中,挖掘出有用的数据,并且能以较人性化.直观的方式展示这些数据,变得尤为重要.本文将介绍5款顶级开源 BI(商务智能)软件和报表工具,用于商业数据的 ...

  4. Vue2/3 项目中的 ESLint + Prettier 代码检测格式化风格指南

    Vue2/3 项目中的 ESLint + Prettier 代码检测格式化风格指南 因为平时都是使用 VSCode ESLint + Prettier 检测格式化不规范代码,但是随着接手的项目越来越多 ...

  5. 《Selenium+Pytest Web自动化实战》视频试听课程

    环境准备 1.1 python3环境安装 1.2 selenium3和chrome环境 1.3 pycharm安装 webdriver API 2.1基本操作 2.2元素定位id_name_class ...

  6. 安卓应用修改(高德.度盘.QQ浏览器.bili)

    软件介绍 高德地图修改版去广告精简版!核心功能如下: 语音包丰富.有大家最喜欢的小团团语音!测距,实时公交,足迹,限行等主流功能全都有.有完整的地铁图,且更新很快!杭州地铁3号线刚开通就更新了.有车道 ...

  7. laravel 实现详情分页

    选择合适的PHP框架及前端框架布局页面(10分) 首先展示出分类列表,每个分类下只显示3条信息,无需分页 (30分) 在列表页 点击文章标题进入详细页面,对应的文章点击量+1(30分) 在详细页面点击 ...

  8. laravel7 H-ui模板ajax修改(资源路由)

    1:列表首页设置点击事件,并将id传至后台,查询数据 <td class="f-14"><a title="编辑" href="ja ...

  9. 同事都说有SQL注入风险,我非说没有

    前言 现在的项目,在操作数据库的时候,我都喜欢用ORM框架,其中EF是一直以来用的比较多的:EF 的封装的确让小伙伴一心注重业务逻辑就行了,不用过多的关注操作数据库的具体细节.但是在某些场景会选择执行 ...

  10. NOIP集训题目解析

    11.01 子段和 题目大意 给定一个长度为 \(n\) 的序列 \(a\) ,\(a_i=\{ -1,0,1 \}\) ,需要将 \(a\) 中的 \(0\) 变为 \(1\) 或 \(-1\) , ...