1. 程式人生 > >Spring事務不生效的解決過程

Spring事務不生效的解決過程

今天使用Spring+ibatis+SqlServer進行事務配置時,總是不生效,以下是解決流程,以備忘。

1、我以為是資料庫的問題,之前用的是mysql,只有InnoDB引擎支援事務;後來想想,如果SqlServer2008的預設引擎都不支援事務的話,那這款產品還有什麼生命力?應該不是資料庫的問題。

2、有人說org.springframework.jdbc.datasource.DataSourceTransactionManager不支援事務管理,後來經查詢,不是這個問題。

3、還有人說事務管理的地方一定要丟擲RuntimeExcepion,經測試,也不是,排除!

4、有點想當然地認為配置檔案的方式沒生效,是否有快取或者沒編譯到目標資料夾等等,於是將配置式改為宣告式,還是不行!

4、將@Service註解去掉,在applicationContext.xml檔案中配置Service的bean,發現居然成功了!忽然想起上次在配置攔截器的時候也經常不生效,原因是applicationContext.xml的父容器先於Servlet的子容器生效,將Service提前載入了。於是嘗試在網上搜尋解決方案,最終ok了,解決辦法如下:

applicationContext.xml檔案中的如下配置:

  <context:component-scan base-package="com.cignacmb">

             <context:exclude-filtertype="annotation"

expression="org.springframework.stereotype.Controller"/>

       </context:component-scan>

  和 applicationContext-mvc.xml檔案中的如下配置:

        <context:component-scanbase-package="com.cignacmb">

           <context:include-filter type="annotation"expression="org.springframework.stereotype.Controller"

/>

           <context:exclude-filter type="annotation"expression="org.springframework.stereotype.Service" />

        </context:component-scan>


具體帖子見:http://icanfly.iteye.com/blog/778401

相關推薦

Spring事務生效解決過程

今天使用Spring+ibatis+SqlServer進行事務配置時,總是不生效,以下是解決流程,以備忘。 1、我以為是資料庫的問題,之前用的是mysql,只有InnoDB引擎支援事務;後來想想,如果SqlServer2008的預設引擎都不支援事務的話,那這款產品還有什麼

Spring事務生效問題彙總

在實際專案開發中,經常會由於配置錯誤或使用不當,導致spring事務管理不生效。如下總結了幾點事務不生效的情況: 1、確認建立的mysql資料庫表引擎是InnoDB,MyISAM不支援事務。 2、確認呼叫的類是由spring容器管理的代理類。

Spring+Mybatis @Transactional註解事務生效

排除 context mage prop span 文件 action aso eight @Transactional聲明式事務配置:   <bean id="transactionManager"     class="org.springframework.j

spring 事務處理中,同一個類中:A方法(無事務)調B方法(有事務),事務生效問題

public class MyEntry implements IBaseService{ public String A(String jsonStr) throws Exception{ UserInfo user = null; UserDetail userDetail = nul

spring mvc 註解事務生效

spring mvc註解事務配置很簡單 下面簡短的程式碼便可以解決 註解事務不生效問題。 我是 在web.xml檔案<servlet-name>指向的首先載入的spring配置檔案中加以下註解。這樣好像不夠優雅但沒嘗試更好的方法。      

Spring service本類中方法呼叫另一個方法事務生效問題

前些日子一朋友在需要在目標物件中進行自我呼叫,且需要實施相應的事務定義,且網上的一種通過BeanPostProcessor的解決方案是存在問題的。因此專門寫此篇帖子分析why。 1、預備知識 使用AOP 代理後的方法呼叫執行流程,如圖所示 也就是說我們首先呼叫的是

spring 本類中方法呼叫另外一個方法事務生效

1、在spring配置檔案中新增 <aop:aspectj-autoproxy expose-proxy="true"/&g

supervisord stdout_logfile 生效解決辦法

文件 cto path stream app dir flow art pri 配置文件 [program:p2p_recv] command = /ebs_data/appenv3/bin/python xmpp_p2p_recv.pyc process_name =

Mysql grant all privileges on ...生效解決方案

.com nts 本地 all 圖片 info 技術分享 原因 虛擬機 情景:我在mac的終端下用ssh操作虛擬機中的centos,mysql運行在centos中 mysql -u root -p 用root登錄mysql後 使用 grant all privileg

【IDEA】IDEA中maven項目pom.xml依賴生效解決

code CI dea color ogl end pen 分享圖片 關系 問題:   今天在web項目中需要引入poi相關jar包。查看之下才發現pom.xml中的依賴雖然已經下載到了本地倉庫 repository,但是卻沒有加入到項目路徑的 Extenal Libra

Servlet4.0 註解生效解決

bubuko 不生效 let TE 一個 路勁 mage xxxxx 解決 當我們創建好一個4.0的servlet 生成的註解大概是這樣 name=xxxxx 默認的是不具有效果的 你可以有兩種方式 1.去掉屬性name,3.0就是這樣子的 2.非要

vue2.0 element-ui中el-upload的before-upload方法返回false時submit()生效解決方法

tip child 是我 pre gre 調用 2.0 技術 lis 我要實現的功能是在上傳文件之前校驗是否表格中存在重復的數據,有的話,需要彈窗提示是否覆蓋,確認之後繼續上傳,取消之後,就不再上傳。 項目中用的element-ui是V1.4.3 <el-upload

Spring 事務起作用的幾種情況

service() true bean 每次 語句 imp 作用 stc current 1:必須是runtime異常,方法不要有try catch語句。 2:service 中 @Service() public class AServiceImpl1 imple

Windows中Nginx配置nginx.conf生效解決方法

ps:      樂優商城的圖片上傳中遇到的坑,nginx.conf一直沒有生效,折磨了幾個小時,終於搞定了。 附 nginx.conf: #user nobody; worker_processes 1; #error_log lo

thinkphp3.2在home模組下的config設定的生效解決方法

在全域性配置檔案Common/Conf/config.php 和Home模組配置檔案Home/Conf/config.php裡面分別新增程式碼: 'MODULE_ALLOW_LIST' => array ('Home','Admin'), 'DEFAULT_MODULE' =&g

windows環境下,git配置祕鑰生效解決

使用git過程中會出現反覆讓你輸入使用者名稱和密碼的情況,比較煩嗎,因此我們可以配置SSH KEY,讓我們在拉取和提交程式碼是不用輸入密碼。但是配置過程中可以出現配置好的祕鑰不生效的情況。 1.在搭建的git網站刪除原有key,如圖 2.配置使用者名稱和郵箱,在git

html 引入js生效 解決辦法

1.問題描述,js放在<head>裡面不生效    js存放路徑/xxx/src/main/webapp/js/common.js    頁面存放地址:/xxx/src/main/webapp/WEB-INF/xxx/xxx/xxx/xxx

PageHelper在springboot中生效解決方法

原因: mava引入的包為: <dependency>             <groupId>com.github.pagehelper</groupId>             <artifactId>pagehel

security中jsr250生效解決辦法

在springSecurity.xml檔案中開啟註解支援,springSecurity中預設是關閉的: <security:global-method-security jsr250-annotations=“enabled”/> 在pom檔案中新增

SpringBoot之logback-spring.xml生效

一、前言 做新應用就是這樣,會遇到各種問題,昨天剛解決了載入某一個類時候丟擲了class is not visible from class loader的問題,今天就有遇到了日誌檔案找不到的問題,還是和二方庫有關的,下面就一一道來。 二、問題產生 正常情況下在 src/main/resou