转自:http://www.itpub.net/thread-1906608-1-1.html
1、首先配置两个数据库
<bean id="dataSourceA" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxActive" value="${jdbc.maxActive}" />
<property name="maxWait" value="${jdbc.maxWait}" />
</bean>
<bean id="dataSourceB" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${vjdbc.driverClassName}" />
<property name="url" value="${vjdbc.url}" />
<property name="username" value="${vjdbc.username}" />
<property name="password" value="${vjdbc.password}" />
<property name="maxActive" value="${jdbc.maxActive}" />
<property name="maxWait" value="${jdbc.maxWait}" />
</bean>
2、再配置一个dataSource 管理 key 值和value值对应,默认选择dataSourceA ,其他配置按照正常的spring mvc 配置即可。
<bean id="dataSource" class="com.broadengate.util.DynamicDataSource">
<!-- 通过key-value的形式来关联数据源 -->
<property name="targetDataSources">
<map key-type="java.lang.String">
<entry value-ref="dataSourceA" key="dataSourceA"></entry>
<entry value-ref="dataSourceB" key="dataSourceB"></entry>
</map>
</property>
<property name="defaultTargetDataSource" ref="dataSourceA" >
</property>
</bean>
3、sessionFactory 中使用 dataSource做数据源。
4、新建一个DynamicDataSource类继承AbstractRoutingDataSource。
public class DynamicDataSource extends AbstractRoutingDataSource{
public static final String DATA_SOURCE_A = "dataSourceA";
public static final String DATA_SOURCE_B = "dataSourceB";
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
public static void setCustomerType(String customerType) {
contextHolder.set(customerType);
}
public static String getCustomerType() {
return contextHolder.get();
}
public static void clearCustomerType() {
contextHolder.remove();
}
@Override
protected Object determineCurrentLookupKey() {
return getCustomerType();
}
}
5、切换数据源,这一步必须在进入业务层之前切换。
DynamicDataSource.setCustomerType(DynamicDataSource.DATA_SOURCE_A);
分享到:
相关推荐
主要给大家介绍了关于Spring MVC如何配置双数据源实现一个java项目同时连接两个数据库的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
基于Spring Spring MVC MyBatis的图书馆管理系统,使用Maven进行包管理。主要功能包括:图书查询、图书管理、图书编辑、读者管理、图书的借阅与归还以及借还日志记录等。 环境配置 开发环境:Windows 10,IntelliJ ...
项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...
c3p0-0.9.1.2.jar c3p0数据源 commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang-2.5.jar commons-logging-1.1.1.jar ibatis-2.3.4.726.jar ibatis包 jstl.jar jstl支持包 log4j-1.2.15.jar log4j...
考试管理系统 1 不要用tomcat插件启动 2 java开发 ssm+easyui ...4 conf文件有asp最新.sql 创建mysql数据库 然后在配置数据源即可 5 运行起来之后,localhost:8080/asp 为主页 6 可以作为期末小作业来用还是很不错的
项目描述 辅助业务人员对工程财务状况...2.spring中关于DataSource的配置,需要在tomcat的conf/context.xml中添加数据源 3.PaymentServiceImpl.java中有个import错误 4.FMS.sql数据库文件较大,导入时间较长,请耐心
以及动态数据源的切换! 最新新增了ehcache缓存的应用 TestSpringWithoutMaven 使用导入包的方法构建项目,spring mvc,spring,分别与jdbctemplate,hibernate,mybatis全注解整合,其中包括包含有spring动态代理...
使用maven构建项目,spring mvc,spring,分别与jdbctemplate,hibernate,mybatis全注解整合,其中包括包含有spring动态代理,数据库的事务处理。以及动态数据源的切换! 最新新增了ehcache缓存的应用
8.2.2 创建Spring MVC的xml配置文件85 8.2.3 创建Controller和view86 8.3 关联spring源代码87 8.4 小结89 第9章 创建Spring MVC之器90 9.1 整体结构介绍90 9.2 HttpServletBean93 9.3 FrameworkServlet95 ...
在本教程中,我们将学习如何在一个简单的spring MVC Web应用中集成Jasper报表工具。教程涵盖的技术点有:报表自定义数据源的使用;报表渲染、呈现的配置与实现;iReport报表设计器的使用(报表模板设计)等。
项目源代码:涵盖了多个Java毕业设计项目的完整代码,包括登录注册、用户管理、数据增删改查等功能模块的实现。这些代码均经过严格测试,可直接运行,方便您快速了解项目结构和实现细节。 MD文档:详细介绍了每个...
基础数据 系统维护 运行环境 Eclipse ,JDK 1.8 ,Tomcat7,maven 项目技术(必填) 后端技术 SpringMVC MVC框架 Spring Framework 容器 Apache Shiro 安全框架 Mybatis ORM框架 MyBatis Generator 代码生成 ...
ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目实例里面包含论坛, 购物商城 网页 后台管理的java项目集成演示地址: (服务器不太稳定,可以尝试刷新,感谢大佬捐赠的服务器费用)开发环境:Eclipse ...
数据源监控:druid 接口swagger文档 日志查询 邮件管理:发送邮件、搜索邮件 文件管理:上传文件、文件列表、文件删除 公告管理:公告未读提醒、发布公告、查询公告、公告阅读人列表 excel下载:自定义sql导出...
支持多数据源、分库分表和分布式事务。支持 Dubbo RPC 的完整功能,有超过 1亿+ 用户产品正在使用。完整的单点限流和分布式限流功能。支持基于 Apollo 和 Nacos 的分布式配置中心。完整的分布式缓存、分布式session...
开发技术:JAVA, JSP, Servlet, JDBC Development technology:JAVA, JSP, Servlet, JDBC 开发环境:IntelliJ idea 2017.1+, jdk 8u91, mysql 5.5, tomcat 8.5.34 Development environment:IntelliJ idea 2017.1+,...
eeSite 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring MVC、Apache Shiro、MyBatis、Beetl、Bootstrap、AdminLTE),在线代码生成功能,包括核心模块如:组织机构、角色用户、菜单及...
2. 然后再配置Maven到环境变量中,在源代码目录下运行 3. 使用浏览器访问http://localhost:8080即可进入系统。 用户分为两类:读者、图书馆管理员。图书馆管理员可以修改读者信息,修改书目信息,查看所有借还日志等...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...