zoukankan      html  css  js  c++  java
  • spring,mybatis,多数据源配置

    spring.xml配置

        <!-- 对数据源进行事务管理 -->
        <bean id="transactionManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="multipleDataSource"></property>
        </bean>

    spring-datasource.xml配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
    
        <!-- alibaba dataSource -->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
            init-method="init" 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.pool.maxActive}" />
            <property name="maxIdle" value="${jdbc.pool.maxIdle}" />
            <property name="minIdle" value="${jdbc.pool.minIdle}" />
        </bean>
        
        <bean id="dataSource_1" class="com.alibaba.druid.pool.DruidDataSource"
            init-method="init" destroy-method="close">
            <property name="driverClassName" value="${jdbc.driverClassName}" />
            <property name="url" value="${jdbc.url1}" />
            <property name="username" value="${jdbc.username}" />
            <property name="password" value="${jdbc.password}" />
            <property name="maxActive" value="${jdbc.pool.maxActive}" />
            <property name="maxIdle" value="${jdbc.pool.maxIdle}" />
            <property name="minIdle" value="${jdbc.pool.minIdle}" />
        </bean>
        
         <bean id="multipleDataSource" class="cn.tomcat.quickstart.common.utils.MultipleDataSource">
            <property name="defaultTargetDataSource" ref="dataSource"/>
            <property name="targetDataSources">
                <map>
                    <entry key="dataSource_1" value-ref="dataSource_1"/>
                </map>
            </property>
        </bean>
    </beans>

    jdbc.properties

    #mysql
    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/quickstart?useUnicode=true&characterEncoding=utf-8
    jdbc.username=root
    jdbc.password=password
    jdbc.pool.maxActive=50
    jdbc.pool.maxIdle=10
    jdbc.pool.minIdle=0
    
    jdbc.url1=jdbc:mysql://localhost:3306/quickstart1?useUnicode=true&characterEncoding=utf-8

    MultipleDataSource.java

    package cn.tomcat.quickstart.common.utils;
    
    import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
    
    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() {
            //System.out.println(dataSourceKey.get());
            
            return dataSourceKey.get();
        }
    
    }

    默认的是datasource数据源,需要切换的时候,

    MultipleDataSource.setDataSourceKe("dataSource_1")即可!!!
  • 相关阅读:
    [LeetCode] 17. Letter Combinations of a Phone Number 电话号码的字母组合
    [LeetCode] 11. Container With Most Water 装最多水的容器
    [LeetCode] 42. Trapping Rain Water 收集雨水
    Meta标签中的format-detection属性及含义(转)
    html marquee 标签(转)
    css 样式引入的方法 link 与import的区别
    html meta标签使用
    backface-visibility
    zepto.js 总结
    HTTP 请求的组成 方法 已经 请求的状态码
  • 原文地址:https://www.cnblogs.com/ppli/p/5640002.html
Copyright © 2011-2022 走看看