spring 4.0.6 + mybatis 3.2.5 + mybatis-spring 1.2.3 构造多个数据源的配置
2016-02-16 15:44
405 查看
一套数据库访问的配置主要由以下部分构成
1.1 dataSource
1.2 SqlSessionFactory
1.3 MapperScannerConfigurer
以上为每个spring + myibatis构建的工程的必备配置。如果存在多个数据源,不加以区分SqlSessionFactory,会引起访问数据库的异常,应为系统不会自动的区分当前的数据源指的是哪一个数据库。
所以如果存在多个数据源需要俩套配置。配置是请注意一下位置
1: SqlSessionFactory中的mapperLocations配置,如果存在多个,且某个存在于jar中,请使用如下的方法进行处理
2: 在配置MapperScannerConfigurer时sqlSessionFactoryBeanName的配置
按照一般的规则大部分人喜欢配置成
但是在高版本的spring中,sqlSessionFactory的初始化快于dataSource的生成,dataSources的生成依赖于读取配置文件,等操作,所以导致sqlSessionFactory的初始化失败,而使用
即可避免该问题。
1.1 dataSource
bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>${jdbc.driver}</value> </property> <property name="url"> <value>${jdbc.url}</value> </property> ……
1.2 SqlSessionFactory
<bean id="tysSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations"> <array> <value>classpath:mapping/*Mapper.xml</value> <value>classpath*:com/*/mapping/**/*.xml</value> </array> </property> </bean>
1.3 MapperScannerConfigurer
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.xx.xx.dao"/> <property name="sqlSessionFactoryBeanName" value="tysSqlSessionFactory" /> </bean>
以上为每个spring + myibatis构建的工程的必备配置。如果存在多个数据源,不加以区分SqlSessionFactory,会引起访问数据库的异常,应为系统不会自动的区分当前的数据源指的是哪一个数据库。
所以如果存在多个数据源需要俩套配置。配置是请注意一下位置
1: SqlSessionFactory中的mapperLocations配置,如果存在多个,且某个存在于jar中,请使用如下的方法进行处理
<value>classpath*:com/*/mapping/**/*.xml</value>
2: 在配置MapperScannerConfigurer时sqlSessionFactoryBeanName的配置
按照一般的规则大部分人喜欢配置成
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
但是在高版本的spring中,sqlSessionFactory的初始化快于dataSource的生成,dataSources的生成依赖于读取配置文件,等操作,所以导致sqlSessionFactory的初始化失败,而使用
<property name="sqlSessionFactoryBeanName" value="tysSqlSessionFactory" />
即可避免该问题。
相关文章推荐
- Eclipse安装颜色主题,个性化你的IDE,让你的IDE焕然一新
- java post raw 的示例
- 关于java堆内存溢出的几种情况
- 统计java代码行数和jar包中*.class代码的行数
- 二叉树的增、删、改、查(java实现)
- java的xpath语法
- Java正则表达式详解
- java常用算法之最长回文子串(Longest Palindromic Substring)
- 通过Junit和Spring-Test测试SpringMVC的web应用
- Java注解全面解析
- Java并发编程:Lock
- Spring源码学习之BeanFactory体系结构
- Java Socket超时浅析
- Eclipse中Build Workspace 优化
- Java正则表达式
- Eclipse颜色主题插件:Eclipse Color Theme
- Java常用工具类
- Java-强引用、软引用、弱引用、虚引用详解
- java web点击链接用js判断用户是否已经登录 (js获取session及判断是否为空)
- Java基础高级二(多线程)