關(guān)于spring事務(wù)的用法分類如下:
在實際項目中比較常用的兩種方法
1.基于AspectJ的XML方式(基于AOP思想)
在spring配置文件中配置喂窟,當(dāng)程序運行時测暗,spring會自動對<tx:method>中匹配的方法進行aop操作,進行所配置的事務(wù)管理
<!--事務(wù)管理器-->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<!--注入spring管理的dateSource-->
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--配置自動事務(wù)代理-->
<aop:config>
<!--切入點-->
<aop:pointcut id="transactionPointCut" expression="execution(* com.learn.service..*.*(..))" />
<!--切面-->
<aop:advisor advice-ref="txAdvice" pointcut-ref="transactionPointCut" />
</aop:config>
<!--配置事務(wù)增強處理Bean-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!--方法自定義磨澡,把哪些方法納入事務(wù)管理-->
<!--可在此定義propagation傳播行為碗啄、isolation、rollback-for等事務(wù)定義信息-->
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="persist*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
2.基于注解的事務(wù)管理
同樣需要在spring配置文件中配置事務(wù)管理器稳摄,然后配置事務(wù)注解就ok了
<!--事務(wù)管理器-->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<!--注入spring管理的dateSource-->
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--開啟事務(wù)注解-->
<tx:annotation-driven transaction-manager="transactionManager"/>
然后再在需要添加事務(wù)的service層的所在類上添加@Transactional(propagation = Propagation.REQUIRED)注解即可稚字,括號中為需要定義的事務(wù)信息