日期:2014-05-17  浏览次数:20774 次

求 Spring3 + ibatis3 事务管理方案
使用 Spring3 版本, ibatis3 版本,

如何集成,并做声明式事务。

另外,如何做分布式,可得分。

------解决方案--------------------
你手动写你的事务管理,写一个通知,在事前通知里开启事务,事后通知关闭事务,异常里面回滚,然后用模糊匹配,使用规则的命名,应该是可以做的。因为我没用过ibatis3,所以不好说,我原来做过hibernate使用sessionFactory的注入时候,这样处理过事务,因为spring没有对sessionFactory的事务处理
------解决方案--------------------
CSS code

在Spring配置文件中配置事务的传播特性
需要配置advice及事务的切面aop和切入点

<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="add*" propagation="REQUIRED"/>add开头的方法,配置事务管理
   <tx:method name="delete*" propagation="REQUIRED" />对delete开头的方法,进行事务管理
   <tx:method name="update*" propagation="REQUIRED" />
   <tx:method name="*" read-only="true" />其他方法只读,一般指查询方法。就不需要事务
  </tx:attributes>
 </tx:advice>
 <aop:config>
  <aop:pointcut id="allManagerMethod"
   expression="execution(* com.hoo.service.*.*(..))" />//对com.hoo.service包下的所有类 所以方法 进行过滤(也就是事务管理)
  <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod" />
 </aop:config>

------解决方案--------------------
探讨
你手动写你的事务管理,写一个通知,在事前通知里开启事务,事后通知关闭事务,异常里面回滚,然后用模糊匹配,使用规则的命名,应该是可以做的。因为我没用过ibatis3,所以不好说,我原来做过hibernate使用sessionFactory的注入时候,这样处理过事务,因为spring没有对sessionFactory的事务处理

------解决方案--------------------
Spring3 + ibatis3 的事务管理是通过配置文件和xml共同管理的。
applicationContext.xml,sql-map-config.xml,user.xml
在applicationContext.xml中定义接口调用user.xml的sql。
------解决方案--------------------
mark
------解决方案--------------------
探讨

CSS code

在Spring配置文件中配置事务的传播特性
需要配置advice及事务的切面aop和切入点

<bean id="transactionManager"//事务管理器
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFacto……

------解决方案--------------------
在Spring配置文件中配置事务的传播特性需要配置advice及事务的切面aop和切入点