1.什麼是spring 註解事物:就是直接在service層的方法上面加上@transactional註解。
什麼是宣告試事物:就是使用spring 的aop配置事物。
2.事物不回滾通常是出現在註解事物或宣告式事物,程式設計式事務一般需要手寫回滾 通常不會出問題。
3.常見的事物不會滾通常有以下幾種情況:
3.1宣告試事物配置的切入點表示式錯誤,沒有切入service中的方法。
3.2service方法中進行了異常捕獲,try catch 後只是列印了異常資訊沒有再丟擲
throw new runtimeexception(e)。spring 事物混回滾預設是執行時異常才回滾(runtimeexception)。3.3 service方法丟擲的異常不是執行時異常例如exception,事物也不會回滾,事物回滾預設是執行時異常(runtimeexception)。
4.如何解決這種問題
4.1 宣告試事物:spring aop的情況
在配置中增加回滾條件你自己可以定義:
4.2註解式事物:@transactional@transactional(rollbackfor=exception.class)4.3 什麼也不修改 在 catch中增加throw new runtimeexception(e)
spring mybatis的註解事物 失效問題
spring mvc 的配置 spring的配置 出現的bug是 spring mvc啟動時的配置檔案,包含元件掃瞄 url對映以及設定freemarker引數,讓spring不掃瞄帶有 service註解的類。為什麼要這樣設定?因為servlet context.xml與service conte...
spring事物註解
spring事物註解 事務的註解如下 transactional propagation propagation.required 其中,propagation有7個常量值,常用的有required和supports,下面是各種值的解釋 propagation required 如果當前沒有事務,就...
spring註解事物,不生效,不回滾,正確配置
spring開發中如果需要加入註解事務,可以進行如下配置。在spring的配置檔案中加入 class org.springframework.jdbc.datasource.datasourcetransactionmanager proxy target class false 在service層...