spring事务处理

来源:互联网 发布:鬼泣3 但丁觉醒 mac版 编辑:程序博客网 时间:2024/05/22 11:33

spring对事务的处理有三种方式

1.基于TransactionProxyFactoryBean的方式(很少使用)

<!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.DataSourceTransactionManager">     <property name="dataSource" ref="dataSource"/></bean><!-- 配置业务层代理 --><bean id="accountServiceProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">     <!-- 配置目标对象 -->     <property name="target" ref="com.cqut.accountService"/>     <!-- 注入事务管理器 -->     <property name="transactionManager" ref="transactionManager"/>     <!-- 注入事务属性 -->     <property name="transactionAttributes">           <props>                   <prop key="transfer">PROPAGATION_REQUIRED</prop> <!--transfer为accountService的方法 -->           </props>     </property></bean>

2.基于AspectJ的XML方式(经常使用)

<!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">    <property name="dataSource" ref="dataSource"></bean><!-- 配置事务的通知:(事务的增强) --><tx:advice id="txAdvice" transaction-manager="transactionManager">     <tx:attributes>          <tx:method name="com.cqut.transfer" propagation="REQUIRED">     </tx:attributes></tx:advice><!-- 配置切面 --><aop:config>      <!-- 配置切入点 -->      <aop:pointcut expression="execution(* com.cqut.MyService+.*(..))" id="pointcut"/>       <!-- 配置切面 -->       <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"></aop:config>

3.基于注解的方式(经常使用)

<!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSource">     <property name="dataSource" ref="dataSource"></bean><!-- 开启注解事务 --><tx:annotation-driven transaction-manager="transactionManager"/>
最后在业务实现类引用注解@Transctional即可。

0 0
原创粉丝点击