Spring事務不起作用 問題彙總

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的數據源不是一個,也會引起問題


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章