文档章节

Spring+MyBatis多数据源配置实现

有资本再款
 有资本再款
发布于 2015/06/12 15:39
字数 337
阅读 27
收藏 0
点赞 0
评论 0

Spring多数据源的配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd	
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"
		default-autowire="byName">

	<bean id="xingeimsDataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url"
			value="jdbc:mysql://172.16.4.39/xingeims?characterEncoding=utf8" />
		<property name="username" value="xinge" />
		<property name="password" value="xingeims" />
	</bean>

	<bean id="creditDataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url"
			value="jdbc:mysql://localhost:3306/credit?characterEncoding=utf8" />
		<property name="username" value="root" />
		<property name="password" value="root" />
	</bean>


	<bean id="multipleDataSource" class="com.xinge.ims.common.MultipleDataSource">
		<property name="defaultTargetDataSource" ref="xingeimsDataSource" />
		<property name="targetDataSources">
			<map>
				<entry key="xingeimsDataSource" value-ref="xingeimsDataSource" />
				<entry key="creditDataSource" value-ref="creditDataSource" />
			</map>
		</property>
	</bean>

	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="multipleDataSource" />
		<property name="typeAliasesPackage" value="com.xinge.ims.dal.domain" />
	</bean>

	<!-- scan for mappers and let them be autowired -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.xinge.ims.dal.persistence" />
	</bean>

	<!-- transaction manager, use JtaTransactionManager for global tx -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="multipleDataSource" />
	</bean>

	<!-- enable transaction demarcation with annotations -->
	<tx:annotation-driven transaction-manager="transactionManager" />

</beans>
public class MultipleDataSource extends AbstractRoutingDataSource{

	private static final ThreadLocal<String> dataSourceKey = new InheritableThreadLocal<String>();

    public static void setDataSourceKey(String dataSource) {
        dataSourceKey.set(dataSource);
    }
	
	@Override
	protected Object determineCurrentLookupKey() {
		return dataSourceKey.get();
	}

	
}
@Component
@Aspect
public class MultipleDataSourceAspectAdvice {

	/**
	 * 设置数据源,拦截dao层
	 * @param jp
	 * @return
	 * @throws Throwable
	 */
	@Around("execution(* com.xinge.ims.dal.persistence.*.*(..))")
	public Object doAround(ProceedingJoinPoint jp) throws Throwable {
		if (jp.getTarget() instanceof CreditDAO) {
			MultipleDataSource.setDataSourceKey("creditDataSource");
		} else {
			MultipleDataSource.setDataSourceKey("xingeimsDataSource");
		}
		return jp.proceed();
	}
}


本文转载自:http://www.cnblogs.com/lzrabbit/p/3750803.html

共有 人打赏支持
有资本再款
粉丝 5
博文 99
码字总数 16312
作品 0
黄冈
Spring+MyBatis多数据源配置实现

jdbc和log4j的配置 #定义输出格式ConversionPattern=%d %-5p [%t] %c - %m%n log4j.rootLogger=DEBUG,Consolelog4j.logger.com.cnblogs.lzrabbit=DEBUGlog4j.logger.org.springframework=ER......

引鸩怼孑
2015/06/17
0
3
使用Spring Profile和Mybatis进行多个数据源(H2和Mysql)的切换

最近在做WebMagic的后台,遇到一个问题:后台用到了数据库,本来理想情况下是用Mysql,但是为了做到开箱即用,也整合了一个嵌入式数据库H2。这里面就有个问题了,如何用一套代码,提供对Mys...

黄亿华
2014/03/20
0
3
spring+mybatis 配置了三个数据源,事物失效

问题: spring+mybatis 配置了三个数据源,事物失效,手动使用 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 也不回滚; 背景: 有个项目使用SSM框架,需要访问...

太黑_thj
2017/04/11
89
0
PropertyPlaceholderConfigurer 无效的问题

问题描述: 这两天自己配置SPring+MyBatis遇到了个问题,搞了一天才搞定。就是PropertyPlaceholderConfigurer加载配置之后在DatasSource中的使用无效的问题。 以下是配置 <bean id="property...

Lubby
2015/12/08
182
1
基于Spring+Mybatis的多数据源动态切换

Spring单数据源直接在<bean id="dataSource">下配置数据源的各种连接参数。但动态数据源需要配置个各个数据源例如ds1、ds2等。然后在dataSource中动态根据传递过来的参数动态调用不同的数据源...

qweasfzxc880
2016/02/25
4.8K
0
spring+mybatis的配置文件?

问在sping+mybatis项目中,配置文件的有点问题那就是为什么在mybatis的配置文件中有一个数据库的配置文件

我爱编程zc
2016/08/09
271
3
深入MyBatis配置文件

我们都知道MyBatis的持久化操作离不开SqlSessionFactory对象,这个对象是整个数据库映射关系经过编译后的内存镜像,该对象的openSession()方法可以打开SqlSession对象.该对象由由SqlSessionFac...

ccgogoing
01/14
0
0
spring事务回滚处理+多线程异步处理

spring事务回滚处理: 准备:配置好spring+mybatis环境。 一、XML方式配置spring事务处理 第一步: spring.xml配置: 第二步:编写测试代码: 第三步:结果分析: 如果事务正常回滚,表中数据...

xiejunbo
2015/10/17
1K
0
Maven搭建SpringMVC+Mybatis项目详解

Maven搭建SpringMVC+Mybatis项目详解 前言 搭建Spring+SpringMVC+Mybatis项目。项目持久层使用Mybatis3,控制层使用SpringMVC4.1,使用Spring4.1管理控制器,数据库连接池使用druid数据源,该...

风中帆
2015/07/28
0
1
Spring+mybatis测试项目总结

1.项目目的 a.通过Spring+Mybatis实现通过web访问达成mySql的操作 b.理解Spring+Mybatis的配置 c.理解maven对项目的管理 2.配置文件 a.采用maven约定结构,src/main/java、src/main/resource...

飓风2000
2014/07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
34分钟前
1
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
55分钟前
0
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
1
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
0
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
0
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部