SpringMVC 中xml 配置多数据源
1,配置jdbc.properties
jdbc.driver_one=... jdbc.url_one=..... jdbc.username_one=... jdbc.password_one=..jdbc.driver_two=... jdbc.url_two=..... jdbc.username_two=... jdbc.password_two=..jdbc.initialSize=..... jdbc.maxActive=.... .....
2,数据源xml 配置
...<!-- 读取配置文件信息 --><context:property-placeholder ignore-unresolvable="true" location="classpath:*.properties"/><bean name="dataSource" class="com.hsq.datasource.MultipleDataSource"><property name="targetDataSources"><map key-type="java.lang.String"><entry key="dataSource_one" value-ref="dataSource_one" /><entry key="dataSource_two" value-ref="dataSource_two" /></map></property><!-- 配置默认数据源1--><property name="defaultTargetDataSource" ref="dataSource_one" /></bean><bean id="dataSource_one" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><!-- 数据库基本配置 --><property name="driverClassName" value="${jdbc.driver_one}" /><property name="url" value="${jdbc.url_one}" /><property name="username" value="${jdbc.username_one}" /><property name="password" value="${jdbc.password_one}" /><!-- 初始化连接数量 --><property name="initialSize" value="${jdbc.initialSize}"/><!-- 最大并发连接数量 --><property name="maxActive" value="${jdbc.maxActive}"/><!-- 最小空闲连接数 --><property name="minIdle" value="${jdbc.minIdle}"/><!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="${jdbc.maxWait}" /><!-- 超过时间限制是否回收 --><property name="removeAbandoned" value="${jdbc.removeAbandoned}" /><!-- 超过时间限制多长 --><property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" /><!-- 用来检测连接是否有效的sql,要求是一个查询语句--><property name="validationQuery" value="${jdbc.validationQuery}" /><!-- 申请连接的时候检测 --><property name="testWhileIdle" value="${jdbc.testWhileIdle}" /><!-- 申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能 --><property name="testOnBorrow" value="${jdbc.testOnBorrow}" /><!-- 归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能 --><property name="testOnReturn" value="${jdbc.testOnReturn}" /><property name="logAbandoned" value="true" /><!-- 配置监控统计拦截的filters,wall用于防止sql注入,stat用于统计分析 --><property name="filters" value="stat,log4j" /></bean><bean id="dataSource_two" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><!-- 数据库基本配置 --><property name="driverClassName" value="${jdbc.driver_two}" /><property name="url" value="${jdbc.url_two}" /><property name="username" value="${jdbc.username_two}" /><property name="password" value="${jdbc.password_two}" /><!-- 初始化连接数量 --><property name="initialSize" value="${jdbc.initialSize}"/><!-- 最大并发连接数量 --><property name="maxActive" value="${jdbc.maxActive}"/><!-- 最小空闲连接数 --><property name="minIdle" value="${jdbc.minIdle}"/><!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="${jdbc.maxWait}" /><!-- 超过时间限制是否回收 --><property name="removeAbandoned" value="${jdbc.removeAbandoned}" /><!-- 超过时间限制多长 --><property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" /><!-- 用来检测连接是否有效的sql,要求是一个查询语句--><property name="validationQuery" value="${jdbc.validationQuery}" /><!-- 申请连接的时候检测 --><property name="testWhileIdle" value="${jdbc.testWhileIdle}" /><!-- 申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能 --><property name="testOnBorrow" value="${jdbc.testOnBorrow}" /><!-- 归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能 --><property name="testOnReturn" value="${jdbc.testOnReturn}" /><property name="logAbandoned" value="true" /><!-- 配置监控统计拦截的filters,wall用于防止sql注入,stat用于统计分析 --><property name="filters" value="stat,log4j" /></bean>
...
3.用枚举类列举数据源:
public enum DbSource {one("dataSource_one"), two("dataSource_two");private String value;DbSource(String value) {this.value = value;}public String getValue() {return value;}pulic void setValue(){this.value = value;} }
4.数据源配置
/*** 配置mybatis多数据源,使用 MultipleDataSource.setDataSourceKey("") 配置数据源**/ public class MultipleDataSource extends AbstractRoutingDataSource {private static final ThreadLocal<String> dataSourceKey = new InheritableThreadLocal<String>();public static void setDataSourceKey(String dataSource) {dataSourceKey.set(dataSource);}public static String getDataSourceKey() {return dataSourceKey.get();}@Overrideprotected Object determineCurrentLookupKey() {return dataSourceKey.get();} }
5,切换方式
try {MultipleDataSource.setDataSourceKey(DbSource.two.getValue());......} finally {MultipleDataSource.setDataSourceKey(DbSource.one.getValue());}
转载于:https://www.cnblogs.com/xiaohu1218/p/10187097.html
SpringMVC 中xml 配置多数据源相关推荐
- Spring框架中XML配置特殊属性注入
Spring框架中XML配置特殊属性注入 前言 创建测试类 其他类型属性 前言 Spring框架中,在通过set方式进行属性注入时,可能会遇到某些特殊字符的注入,例如:null和某些标签字符" ...
- spring+SpringMVC+MyBatis之配置多数据源
数据库准备 1.准备2个数据库,本例以mysql为例 在第一个数据库新建表user -- ---------------------------- -- Table structure for use ...
- SpringBoot中mybatis配置多数据源
首先需要创建多个数据库 简单的user表 CREATE TABLE `user` (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAU ...
- 关于SpringMVC的XML配置步骤
1).配置前端控制 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="h ...
- SpringMVC中定时任务配置
在项目中使用定时任务是常有的事,比如每天定时进行数据同步或者备份等等. 以前在从事C语言开发的时候,定时任务都是通过写个shell脚本,然后添加到linux定时任务中进行调度的. 现在使用Spring ...
- SpringMVC的XML配置解析
SpringMVC有默认组件配置,默认组件都是DispatcherServlet.properties配置文件中配置的,该配置文件地址org/springframework/web/servlet/D ...
- Spring MVC之基于xml配置的web应用构建
2019独角兽企业重金招聘Python工程师标准>>> 更多spring博文参考: http://spring.hhui.top/ 直接用SpringBoot构建web应用可以说非常 ...
- 解决springmvc中添加了静态资源访问路径之后就访问不到Controller路径的问题
访问不到Controller,也访问不到controller路径. Controller代码: /*** Created by 李柏霖* 2020/10/19 17:35*/package com.l ...
- Proxool配置多数据源动态切换
2019独角兽企业重金招聘Python工程师标准>>> 前段时间遇到多数据源动态切换问题,总结一下,做个记录,以备后续之需! 首先附上proxool连接池的配置方法:http://3 ...
最新文章
- python编程题-python编程练习题目
- C#中图片.BYTE[]和base64string的转换
- 中国通货膨胀率2.8%,数据分析买房风险直线上升
- 喜大普奔!Github 移动端上架!
- python和工程造价_终于懂了自学造价的方法
- 机器学习——深度学习之编程工具、流行网络结构、卷积神经网络结构的应用
- Sphinx API文档例子
- 使用Redis的有序集合实现排行榜功能
- 02-02 逐帧动画、多组动画案例 实现小人跑步效果
- Windows手动蓝屏触发方法
- C语言应用(3)——Base64编码/解码
- 如何防止iOS工程师简历石沉大海的几大秘技(请注意查收)
- 二叉树结点的两种写法
- Android开源框架PowerfulViewLibrary——PowerfulEditText的介绍和源码解析
- 《数据结构与算法分析》之插入排序
- liunx安装node
- 《跟着王老师学Excel VBA》的笔记
- html的text-decoration,CSS属性参考 | text-decoration
- 饿了么UI图片上传的实现
- debug记录 -- pix2pix with GAN
热门文章
- 汇编语言LAHF和SAHF指令
- Android SystemServiceManager分析
- Android O 7.0 启动优化的一些思路
- Android Activtity Security
- linux java编译后生成文件_Linux终端编译并执行Java文件
- BZOJ-2002-Bounce弹飞绵羊-分块
- CVPR 2020 《12-in-1: Multi-Task Vision and Language Representation Learning》论文笔记
- POJ 3263-Tallest Cow
- BZOJ 4386 Luogu P3597 [POI2015]Wycieczki (矩阵乘法)
- 从2018年12月起陆续将博客搬至博客园(cnblogs)