可以参考: http://www.cnblogs.com/ityouknow/p/6102399.html

需要一个DatabaseConfiguration类,实现 TransactionManagementConfigurer 接口。

针对每一个数据源的配置主要分为3步:

1. 配置DataSource

2.配置创建sqlSessionFactoryBean的方法,来生成对应该数据源的bean

3.配置mapper(dao)扫描的包

值得注意的是,该配置类需要制定一个主数据源,一般用@Primary注解

下面是代码概览:

/**
* Created by sonofelice on 17/2/23.
*/
@Configuration
@Slf4j
public class DatabaseConfiguration implements TransactionManagementConfigurer { /*------------------------ test1 db -------------------------------*/
@Value("${test1.isEmbedded:true}")
Boolean test1DatabaseIsEmbedded; @Value("${test1.database.url:}")
String test1DatabaseUrl; @Value("${test1.database.username:}")
String test1DatabaseUsername; @Value("${test1.database.password:}")
String test1DatabasePassword; @Bean(name = "test1DataSource")
public DataSource test1DataSource() {
DataSourceConfig config = new DataSourceConfig()
.withIsEmbedded(test1DatabaseIsEmbedded)
.withDatabaseUrl(test1DatabaseUrl)
.withDatabaseUsername(test1DatabaseUsername)
.withDatabasePassword(test1DatabasePassword);
return DataSourceGenerator.getDataSource(config);
} @Bean(name = "test1SqlSessionFactory")
public SqlSessionFactoryBean test1SqlSessionFactory() throws Exception {
return new CustomSqlSessionFactoryBean(test1DataSource());
} @Configuration
@MapperScan(basePackages = "com.test1.mapper.stat",
sqlSessionFactoryRef = "test1SqlSessionFactory")
@Primary
public static class Test1MapperConfiguration { } /*------------------------ test2 db -------------------------------*/
@Value("${test2.database.isEmbedded:true}")
Boolean test2DatabaseIsEmbedded; @Value("${test2.database.url:}")
String test2DatabaseUrl; @Value("${test2.database.username:}")
String test2DatabaseUsername; @Value("${test2.database.password:}")
String test2DatabasePassword; @Bean(name = "test2DataSource")
public DataSource mktDataSource() {
DataSourceConfig config = new DataSourceConfig()
.withIsEmbedded(test2DatabaseIsEmbedded)
.withDatabaseUrl(test2DatabaseUrl)
.withDatabaseUsername(test2DatabaseUsername)
.withDatabasePassword(test2DatabasePassword);
return DataSourceGenerator.getDataSource(config);
} @Bean(name = "test2SqlSessionFactoryBean")
public SqlSessionFactoryBean test2SqlSessionFactory() throws Exception {
return new CustomSqlSessionFactoryBean(test2DataSource());
} @Configuration
@MapperScan(basePackages = "com.test2.mapper.mkt",
sqlSessionFactoryRef = "test2SqlSessionFactoryBean")
public static class MktMapperConfiguration { } /*------------------------ end --------------------------------*/ @Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return txManager();
} public PlatformTransactionManager txManager() {
return new DataSourceTransactionManager(test2StatDataSource());
}
}

配置好了之后就可以用了。不需要配置xml文件。

Spring-Mybatis配置多数据源的更多相关文章

  1. spring+myBatis 配置多数据源,切换数据源

    注:本文来源于  tianzhiwuqis <spring+myBatis 配置多数据源,切换数据源> 一个项目里一般情况下只会使用到一个数据库,但有的需求是要显示其他数据库的内容,像这样 ...

  2. spring+mybatis 配置双数据源

    配置好后,发现网上已经做好的了, 不过,跟我的稍有不同, 我这里再拿出来现个丑: properties 文件自不必说,关键是这里的xml: <?xml version="1.0&quo ...

  3. 如何通过Spring Boot配置动态数据源访问多个数据库

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...

  4. Spring Boot + Mybatis 配置多数据源

    Spring Boot + Mybatis 配置多数据源 Mybatis拦截器,字段名大写转小写 package com.sgcc.tysj.s.common.mybatis; import java ...

  5. Spring+Mybatis配置

    Spring+Mybatis配置 之前做项目的时候用到了spring+mybatis框架,一直想抽空整理一下 Mybatis: mybatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架 ...

  6. SpringBoot集成Mybatis配置动态数据源

    很多人在项目里边都会用到多个数据源,下面记录一次SpringBoot集成Mybatis配置多数据源的过程. pom.xml <?xml version="1.0" encod ...

  7. springboot入门系列(四):SpringBoot和Mybatis配置多数据源连接多个数据库

    SpringBoot和Mybatis配置多数据源连接多个数据库 目前业界操作数据库的框架一般是 Mybatis,但在很多业务场景下,我们需要在一个工程里配置多个数据源来实现业务逻辑.在SpringBo ...

  8. springboot和mybatis 配置多数据源

    主数据源(由于代码没有办法复制的原因,下面图片和文字不一致) package com.zhianchen.mysqlremark.toword.config;import com.zaxxer.hik ...

  9. Spring动态配置多数据源

    Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...

  10. Spring Boot配置多数据源并实现Druid自动切换

    原文:https://blog.csdn.net/acquaintanceship/article/details/75350653 Spring Boot配置多数据源配置yml文件主数据源配置从数据 ...

随机推荐

  1. 本地ssh连接到vbox中的linux

    本机是window xp系统, 安装vbox,在vbox下安装linux,想在xp中用ssh连接linux,此时需要配置网络. 1.设置vbox的网络,选择host-only 2.设置window虚拟 ...

  2. HDU3068(Manacher算法)

    最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  3. 支付宝ios支付请求Java服务端签名报的一个错(ALI40247) 原创

    今天做app的支付宝支付,遇到些问题,以前做支付宝支付签名都是直接在客户端App进行,今天下了最新版本ios的支付宝支付demo,运行demo时底部有红色的显眼字体,告知用户签名必须在服务端进行... ...

  4. Hadoop权威指南:HDFS-写入数据

    Hadoop权威指南:HDFS-写入数据 FileSystem类有一系列的新建文件的方法.最简单的方法是给准备建的文件指定一个Path对象,然后返回一个用于写入数据的输出流: public FSDat ...

  5. input中的disabled 和 readonly的区别

    1.Readonly只针对input(text / password)和textarea有效, 而disabled对于所有的表单元素都有效, 2.但是表单元素在使用了disabled后,当我们将表单以 ...

  6. Kafka 0.8源码分析—ZookeeperConsumerConnector

    1.HighLevelApi High Level Api是多线程的应用程序,以Topic的Partition数量为中心.消费的规则如下: 一个partition只能被同一个ConsumersGrou ...

  7. [转载] 几张非常有意义的JavaScript基础学习思维图

    原文:http://www.w3cfuns.com/forum.php?mod=viewthread&tid=5598364&extra=page%3D1%26filter%3Ddig ...

  8. GIS制图课程目录

    由于更新次序跳跃式更新,因此很有必要整理一下全书目录,并将会按照实际学习的顺序进行更新. [前言] GIS制图课程前言 [理论篇] 理论篇-地图学与GIS制图的基础理论(一) 理论篇-地图学与GIS制 ...

  9. 计算机 计算机语言 常见的DOS命令

    你好 我是大福 你现在看的是大福笔记 我jie的女儿 8年级 在QQ上问我寒假作业 0度的水和0度的冰哪个更冷 什么? 0度水 0度冰这温度不是一样的么? 不可能 肯定没这么简单 她问的意思是不是手放 ...

  10. 初学HTML5

    Document 什么是HTML5? 首先了解html:html即超文本语言,这是一种语法简单.结构清晰的语 解析型文档,他不同于其他的编程语言. html5就是html网页标记语言的第五次重大更新产 ...