spring+mybatis 多数据源切换,动态数据源增长,saas多租户模式方案

2016-11-30

最近公司做一个saas模式的项目。在多数据源问题上卡了几天。有两个方案,这是1.0。

你们不知道我多辛苦,翻遍了中国网站,翻遍了外国网站。

前者不全面,不严谨,后者看不懂。




我们先从,多数据源切换开始。

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
  4.     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"  
  5.     xmlns:aop="http://www.springframework.org/schema/aop"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans    
  7.     http://www.springframework.org/schema/beans/spring-beans-4.1.xsd     
  8.     http://www.springframework.org/schema/context     
  9.     http://www.springframework.org/schema/context/spring-context-4.1.xsd    
  10.     http://www.springframework.org/schema/tx  
  11.     http://www.springframework.org/schema/tx/spring-tx-4.1.xsd  
  12.     http://www.springframework.org/schema/task   
  13.     http://www.springframework.org/schema/task/spring-task-4.1.xsd       
  14.     http://www.springframework.org/schema/aop   
  15.     http://www.springframework.org/schema/aop/spring-aop-4.1.xsd"  
  16.     default-lazy-init="false">  
  17.   
  18.     <!-- 定时器开关 开始 -->  
  19.     <task:annotation-driven />  
  20.     <tx:annotation-driven />  
  21.     <!-- 标注类型 的事务配置 如果使用注解事务。就放开 <tx:annotation-driven /> -->  
  22.     <!-- 统一异常处理方式 -->  
  23.     <!-- <bean id="exceptionHandler" class="com.framework.exception.MyExceptionHandler"/> -->  
  24.     <!-- 初始化数据 -->  
  25.     <!-- <bean id="SpringIocUtils" class="com.framework.util.SpringIocUtils"   
  26.         lazy-init="default" init-method="setBean"/> -->  
  27.   
  28.     <bean  
  29.         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
  30.         <property name="locations">  
  31.             <list>  
  32.                 <value>classpath:jdbc.properties</value>  
  33.             </list>  
  34.         </property>  
  35.         <property name="ignoreUnresolvablePlaceholders" value="true" />  
  36.     </bean>  
  37.     <bean id="dynamicDataSource" class="com.framework.plugin.test.DynamicDataSource">  
  38.         <property name="targetDataSources">  
  39.             <map key-type="java.lang.String">  
  40.                 <entry value-ref="dataSource" key="dataSource"></entry>  
  41.                 <entry value-ref="dataSource2" key="dataSource2"></entry>  
  42.             </map>  
  43.         </property>  
  44.         <property name="defaultTargetDataSource" ref="dataSource">  
  45.         </property>  
  46.     </bean>  
  47.   
  48.     <bean id="dataSource" class="junit.test.JDBCTest">  
  49.         <property name="url" value="${jdbc.url}" />  
  50.         <property name="username" value="${jdbc.username}" />  
  51.         <property name="password" value="${jdbc.password}" />  
  52.         <property name="driverClassName" value="${jdbc.driverClass}" />  
  53.     </bean>  
  54.     <bean id="dataSource2" class="junit.test.JDBCTest">     
  55.         <property name="url" value="jdbc:mysql://127.0.0.1/db_shiro" />  
  56.         <property name="username" value="root" />  
  57.         <property /*it_pc_内容页_正文下方搜索框*/ var cpro_id = "u3044312";

注明:本文章属于转载,仅供行业人员学习交流使用,文章版权属于原创作者,在此向原创者致敬,感谢原创作者为大家学习交流提供精品内容。

站方声明:IThao123是为广大互联网从业者免费提供学习交流的平台,如果侵犯了原创著作权,请联系站方删除,给你带来不便,深表歉意。

顶部