Spring-Mybatis配置多数据源
可以参考: 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配置多数据源的更多相关文章
- spring+myBatis 配置多数据源,切换数据源
注:本文来源于 tianzhiwuqis <spring+myBatis 配置多数据源,切换数据源> 一个项目里一般情况下只会使用到一个数据库,但有的需求是要显示其他数据库的内容,像这样 ...
- spring+mybatis 配置双数据源
配置好后,发现网上已经做好的了, 不过,跟我的稍有不同, 我这里再拿出来现个丑: properties 文件自不必说,关键是这里的xml: <?xml version="1.0&quo ...
- 如何通过Spring Boot配置动态数据源访问多个数据库
之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...
- Spring Boot + Mybatis 配置多数据源
Spring Boot + Mybatis 配置多数据源 Mybatis拦截器,字段名大写转小写 package com.sgcc.tysj.s.common.mybatis; import java ...
- Spring+Mybatis配置
Spring+Mybatis配置 之前做项目的时候用到了spring+mybatis框架,一直想抽空整理一下 Mybatis: mybatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架 ...
- SpringBoot集成Mybatis配置动态数据源
很多人在项目里边都会用到多个数据源,下面记录一次SpringBoot集成Mybatis配置多数据源的过程. pom.xml <?xml version="1.0" encod ...
- springboot入门系列(四):SpringBoot和Mybatis配置多数据源连接多个数据库
SpringBoot和Mybatis配置多数据源连接多个数据库 目前业界操作数据库的框架一般是 Mybatis,但在很多业务场景下,我们需要在一个工程里配置多个数据源来实现业务逻辑.在SpringBo ...
- springboot和mybatis 配置多数据源
主数据源(由于代码没有办法复制的原因,下面图片和文字不一致) package com.zhianchen.mysqlremark.toword.config;import com.zaxxer.hik ...
- Spring动态配置多数据源
Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...
- Spring Boot配置多数据源并实现Druid自动切换
原文:https://blog.csdn.net/acquaintanceship/article/details/75350653 Spring Boot配置多数据源配置yml文件主数据源配置从数据 ...
随机推荐
- IOS开发,遇到的第一个bug
经过几天的得瑟,今天终于开始实践IOS开发了.由于没有苹果的电脑,现在先用虚拟机凑合着. 第一个开发的东西就是苹果官方向导里的helloworld了.最后在运行的时候有一个异常,导致程序会闪退,错误信 ...
- HDU5873
Football Games Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- 支付宝ios支付请求Java服务端签名报的一个错(ALI40247) 原创
今天做app的支付宝支付,遇到些问题,以前做支付宝支付签名都是直接在客户端App进行,今天下了最新版本ios的支付宝支付demo,运行demo时底部有红色的显眼字体,告知用户签名必须在服务端进行... ...
- JAVA_file(1)
1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径.http://www.s ...
- css3 3d初入门(一)
css3 3D.html div.oembedall-githubrepos { border: 1px solid #DDD; list-style-type: none; margin: 0 0 ...
- matlab 向量法建数组(推荐)
一.用赋值的方法可以扩展一个已知的数组: arr= 1:1:4; arr(8)=6; 此时,arr = 1 2 3 4 0 0 0 6 arrNew=arr; 此时arrNew = 1 2 3 4 0 ...
- Unity编程标准导引-3.2 MonoBehavior 组件父类重构
本文为博主原创文章,欢迎转载.请保留博主链接:http://blog.csdn.net/andrewfan 3.2MonoBehavior 组件父类重构 为了让我们的组件类用起来更方便,我们将上一节的 ...
- iOS详解MMDrawerController抽屉效果(一)
提前说好,本文绝对不是教你如何使用MMDrawerController这个第三方库,因为那太多人写了 ,也太简单了.这篇文章主要带你分析MMDrawerController是怎么实现抽屉效果,明白 ...
- mybatis进阶--一对一查询
所谓的一对一查询,就是说我们在查询一个表的数据的时候,需要关联查询其他表的数据. 需求 首先说一个使用一对一查询的小需求吧:假设我们在查询某一个订单的信息的时候,需要关联查询出创建这个订单对应的用户信 ...
- JS中都有哪些数据类型呢?
js中有5种数据类型:Undefined.Null.Boolean.Number和String.还有一种复杂的数据类型Object,Object本质是一组无序的名值对组成的.