關於事務配置的問題,在實際開發中遇到,spring事務配置不生效的問題,費盡周折,方纔解決。spring
spring xml 配置express
<!-- 啓用事務--> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="create*" propagation="REQUIRED" /> <tx:method name="do*" propagation="REQUIRED" /> <tx:method name="start*" propagation="REQUIRED" /> <tx:method name="complete*" propagation="REQUIRED" /> <tx:method name="*" read-only="true" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="serviceOperation" expression="execution (* com.pms.system.mgr.service.impl.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" /> </aop:config>
代碼以下圖:.net
代碼執行到fiveClassFlowService.start(param)發生異常,catch後向外拋出,但xml
work_flow_localtion_relation表插入數據,fiveClassFlowService.start(param)裏的表並未插入。blog
可見事務配置壓根就不生效,檢查了xml的事務配置段,硬是沒發現問題。事務
最後幾經查證,網上有說法是異常拋出RuntimeException會回滾,詳見開發
http://blog.csdn.net/y909513070/article/details/54924956get
最後把代碼作下以下修改,因而乎,問題解決io
作下筆記,以便回顧。配置