http://jinnianshilongnian.iteye.com/blog/1850432
http://sishuok.com/forum/blogPost/list/0/2498.html
Spring事務不起作用 問題彙總
總有很多朋友詢問spring事務不起作用怎麼回事,這裏我彙總下,歡迎補充:
1) 首先使用如下代碼 確認你的bean 是代理對象嗎?
AopUtils.isAopProxy()
AopUtils.isCglibProxy() //cglib
AopUtils.isJdkDynamicProxy() //jdk動態代理
如果不是 那麼就是切入點配置出錯了 或者如果你使用了springmvc,可能是context:component-scan重複掃描引起的.
之前我的事務不生效就是因爲springmvc重複掃描導致的;
<context:component-scan base-package="com.pinan" use-default-filters="false">
<context:include-filter type="regex" expression=".*\.action\..*" />
</context:component-scan>
這裏的use-default-filters="false"必須設置,否則include-filter 不生效,將掃描base-package下的所有Bean
2) 如果是aop代理,那麼說明代理成功,那麼可能是如使用mysql且引擎是MyISAM造成的(因爲不支持事務),改成InnoDB即可。
3)開啓事務的時候和執行dao的數據源不是一個,也會引起問題