`
grunt1223
  • 浏览: 422005 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

多数据源配置(Sping + Ibatis)

阅读更多
实际开发过程中,可能会遇到需要多数据源的场景,比如项目中之前使用的是单一的Oracle数据源,由于image表的数据量过大,因此需要将该表单独迁移至Corba-Mysql上。

首先,在biz-datasource.xml上新增一项imageDataSource:

<bean id="imageDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
                <!-- 驱动不同 -->
	        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="xxx" />
		<property name="username"><value>xxx</value></property>
        	<property name="password"><value>xxx</value></property>
                <property name="maxActive"><value>xxx</value></property>
                <property name="initialSize"><value>xxx</value></property>
                <property name="maxWait"><value>xxx</value></property>
                <property name="maxIdle"><value>xxx</value></property> <!-- 可以和maxActive保持一致 -->
                <property name="minIdle"><value>xxx</value></property>  <!-- 可以和initialSize保持一致 -->
                <property name="removeAbandoned"><value>xxx</value></property>
                <property name="removeAbandonedTimeout"><value>xxx</value></property>
	        <property name="timeBetweenEvictionRunsMillis"><value>xxx</value></property>
	        <property name="minEvictableIdleTimeMillis"><value>xxx</value></property>
		<!-- 注意和oracle设置的参数不同 -->
		<property name="connectionProperties"><value>xxx</value></property>
		<!-- sql检查配置,在idle空闲线程检查时,检查链接有效性,丢弃无效的链接,实现自动重连-->
		<!-- 注意使用cobar时,因为走了F5进行负载,F5默认5分钟会关闭空闲链接,所以需要通过心跳SQL保证数据库链接不被异常关闭 -->
		<property name="testWhileIdle"><value>xxx</value></property>
		<property name="testOnBorrow"><value>xxx</value></property>
		<property name="testOnReturn"><value>xxx</value></property>
		<property name="validationQuery"><value>SELECT @@SQL_MODE</value></property>
		<property name="numTestsPerEvictionRun"><value>xxx</value></property> <!-- 注意和maxActive保持一致 -->
	</bean>


同时,新增sqlmap配置项imageSqlMapClient,指向/ibank/sqlmap-image.xml

    <bean id="imageSqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
	        <property name="configLocation">
	            <value>/ibank/sqlmap-image.xml</value>
	        </property>
	</bean>  


其次,新建sqlmap-image.xml,将原来sqlmap.xml中需要改走mysql的映射文件移到sqlmap-image.xml中,如下:

<sqlMapConfig>
	<settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="false"
		maxRequests="3000" maxSessions="3000" maxTransactions="3000" useStatementNamespaces="false" />
	<typeHandler javaType="com.alibaba.ibank.biz.dal.enumeration.FeatureOfferTypeEnum" callback="com.alibaba.ibank.biz.dal.enumeration.FeatureOfferTypeHandler" />
	<sqlMap resource="ibank/sqlmap-mapping-ibank-image.xml" />
	<sqlMap resource="ibank/sqlmap-mapping-ibank-tmp-image.xml" />
	<sqlMap resource="ibank/sqlmap-mapping-ibank-non-operating-image.xml" />
</sqlMapConfig>


最后,修改biz-dao.xml,由于spring默认的SqlMapClientDaoSupport含有名为datasource的property,因此需要修改autowire属性为no,如下:

<bean id="winportImageDAO" parent="baseDAOProxyFactoryBean">
		<property name="target">
			<bean class="com.alibaba.ibank.biz.dal.cache.CachedWinportImageDAO" autowire="no">
				<property name="sqlMapClient" ref="imageSqlMapClient" />
	            <property name="dataSource" ref="imageDataSource" />
	            <property name="imageSortCache" ref="imageSortCache" />
	            <property name="dazzleImageCache" ref="dazzleImageCache" />
	        </bean>
			<!--
				更新的时候也负责清imageSort和image的cache
			-->
		</property>
	</bean>

1
3
分享到:
评论

相关推荐

    struts2+spring3+ibatis项目整合案例

    同时配置数据源、事务管理器以及iBATIS的相关配置,如SqlSessionFactory。 3. 集成iBATIS:创建Mapper接口和对应的XML配置文件,定义SQL语句。Service层调用DAO层的方法,实现业务逻辑。 4. 整合测试:编写JUnit...

    spring+ibatis

    配置数据源(DataSource),这是Spring管理数据库连接的方式。可以使用Apache的DBCP或C3P0等连接池实现,或者使用Spring的AbstractDataSource类。 4. **SqlSessionFactory配置**: 创建SqlSessionFactoryBean,它...

    Spring整合ibatis

    在Spring中配置数据源通常采用Apache Commons DBCP库中的`BasicDataSource`类。 ```xml ``` - **重要配置项解释**: - `driverClassName`:指定数据库驱动的全限定类名。 - `url`:数据库连接URL。 -...

    ibatis+sping

    1. **配置Spring**:创建Spring的配置文件,定义数据源、SqlSessionFactoryBean以及Ibatis的Mapper接口扫描。通过SqlSessionFactoryBean,Spring能够管理SqlSessionFactory的生命周期,并自动装配Mapper接口。 2. *...

    spring与hibernate以及ibatis集成的实例和具体配置图解

    2. 配置Spring:定义DataSource、SessionFactory(对于Hibernate)和SqlSessionFactory(对于Ibatis)的bean,配置数据源、事务管理器等。 3. 配置Hibernate:创建Hibernate的实体类,编写对应的映射文件,设置...

    java中Spring、iBATIS与Struts的Java_EE开发教程.pdf

    2. **iBATIS配置**:设置iBATIS的数据源、SQL映射文件等。 3. **Struts配置**:定义Struts的Action映射、配置拦截器等。 4. **事务管理**:利用Spring的事务管理功能,确保数据的一致性和完整性。 5. **异常处理**:...

    Spring 3.0.5+MyBatis3.0.4整合例子

    - **配置MyBatis**:在MyBatis的配置文件中设置数据源、事务管理器,并映射Mapper接口和XML文件。 - **Mapper接口和XML文件**:创建Mapper接口,对应数据库操作,XML文件中编写具体的SQL语句。 - **Spring的AOP...

    sping lib架包

    BeanFactory负责创建和管理对象,而ApplicationContext则增加了更多企业级服务,如消息源、国际化支持等。 2. **数据访问/集成**:这个模块提供了对各种数据存储方式的支持,如JDBC、ORM(对象关系映射)框架如...

Global site tag (gtag.js) - Google Analytics