SSH 多数据源-样例1

                   SSH 多数据源-样例1   

 来自:http://www.0djx.com/article/20100520/7719.html

使用SSH框架配置多个数据源,如何解决事务的问题,是需要每个sessionFactory都配备一个事务还是像我这种情况就可以了
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">


<!-- Import Apache CXF Bean Definition -->
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />


<!-- 配置多个数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/doltrip">
</property>
<property name="username" value="root"></property>
<property name="password" value="lituo"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
</bean>

<!-- 所有第三方数据的数据源 -->
<bean id="alldataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/alldata">
</property>
<property name="username" value="root"></property>
<property name="password" value="lituo"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
</bean>

<!-- 配置驴妈妈的数据源 -->
<bean id="aSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/a">
</property>
<property name="username" value="root"></property>
<property name="password" value="lituo"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
</bean>


<!-- 配置sessionFactory -->
<!--
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value> </property> </bean>
-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/doltrip/model/Department.hbm.xml</value>
<value>com/doltrip/model/Employee.hbm.xml</value>
<value>com/doltrip/model/Device.hbm.xml</value>
<value>com/doltrip/model/SdCard.hbm.xml</value>
<value>com/doltrip/model/DeviceType.hbm.xml</value>
<value>com/doltrip/model/Contract.hbm.xml</value>
<value>com/doltrip/model/PhoneDetail.hbm.xml</value>
<value>com/doltrip/model/SimCard.hbm.xml</value>
<value>com/doltrip/model/Customer.hbm.xml</value>
<value>com/doltrip/model/DeviceMatain.hbm.xml</value>
<value>com/doltrip/model/Role.hbm.xml</value>
<value>com/doltrip/model/Bulletin.hbm.xml</value>
<value>com/doltrip/model/User.hbm.xml</value>
<value>com/doltrip/model/Module.hbm.xml</value>
<value>com/doltrip/model/Usersroles.hbm.xml</value>
<value>com/doltrip/model/Acl.hbm.xml</value>

<value>com/doltrip/model/DevsSims.hbm.xml</value>
<value>com/doltrip/model/DeviceOpLog.hbm.xml</value>
<value>com/doltrip/model/Positions.hbm.xml</value>

</list>
</property>
</bean>

<!-- 配置第三方软件sessionFactory -->
<bean id="alldatasessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="alldataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!--
<property name="mappingResources">
<list>

</list>
</property> -->
</bean>

<!-- 配置驴妈妈sessionFactory -->
<bean id="asessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="aSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!--
<property name="mappingResources">
<list>

</list>
</property> -->
</bean>

<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor pointcut="execution(* com.doltrip.service.*.*(..))"
advice-ref="txAdvice" />
</aop:config>

自我分析:

  1:学习一下对于数据源对于异常情况的一个处理:

<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
2:思路

   建立数据源

   建立SESSION  此处用同一个sessionFactory十分有问题?

   建立transactionManager   此处十分有问题?

   建立切点(事务)此处十分有问题

 需要编程中检验。

 

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值