1. 程式人生 > >spring事務註解@Transaction

spring事務註解@Transaction

@Transactional 可以作用於介面、介面方法、類以及類方法上。當作用於類上時,該類的所有 public 方法將都具有該型別的事務屬性,同時,我們也可以在方法級別使用該標註來覆蓋類級別的定義。

@Transaction註解中常用引數說明

引數名稱

功能描述

readOnly

該屬性用於設定當前事務是否為只讀事務,設定為true表示只讀,false則表示可讀寫,預設值為false。例如:@Transactional(readOnly=true)

rollbackFor

該屬性用於設定需要進行回滾的異常類陣列,當方法中丟擲指定異常陣列中的異常時,則進行事務回滾。例如:

指定單一異常類:@Transactional(rollbackFor=RuntimeException.class)

指定多個異常類:@Transactional(rollbackFor={RuntimeException.class, Exception.class})

rollbackForClassName

該屬性用於設定需要進行回滾的異常類名稱陣列,當方法中丟擲指定異常名稱陣列中的異常時,則進行事務回滾。例如:

指定單一異常類名稱:@Transactional(rollbackForClassName="RuntimeException")

指定多個異常類名稱:@Transactional(rollbackForClassName={"RuntimeException","Exception"})

noRollbackFor

該屬性用於設定不需要進行回滾的異常類陣列,當方法中丟擲指定異常陣列中的異常時,不進行事務回滾。例如:

指定單一異常類:@Transactional(noRollbackFor=RuntimeException.class)

指定多個異常類:@Transactional(noRollbackFor={RuntimeException.class, Exception.class})

noRollbackForClassName

該屬性用於設定不需要進行回滾的異常類名稱陣列,當方法中丟擲指定異常名稱陣列中的異常時,不進行事務回滾。例如:

指定單一異常類名稱:@Transactional(noRollbackForClassName="RuntimeException")

指定多個異常類名稱:

@Transactional(noRollbackForClassName={"RuntimeException","Exception"})

propagation

該屬性用於設定事務的傳播行為

例如:@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)

isolation

該屬性用於設定底層資料庫的事務隔離級別,事務隔離級別用於處理多事務併發的情況,通常使用資料庫的預設隔離級別即可,基本不需要進行設定

timeout

該屬性用於設定事務的超時秒數,預設值為-1表示永不超時

注意:

[email protected]只能被應用到public方法上,對於其他非public方法中,如果標記@Transactional不會報錯,但方法沒有事務功能。

2、用 spring 事務管理器,由spring來負責資料庫的開啟,提交,回滾.預設遇到執行期例外(throw new RuntimeException("註釋");)會回滾,即遇到不受檢查(unchecked)的例外時回滾;而遇到需要捕獲的例外(throw new Exception("註釋");)不會回滾,即遇到受檢查的例外(就是非執行時丟擲的異常,編譯器會檢查到的異常叫受檢查例外或說受檢查異常)時,需我們指定方式來讓事務回滾要想所有異常都回滾,要加上 @Transactional( rollbackFor={Exception.class,其它異常}) .如果讓unchecked例外不回滾: @Transactional(notRollbackFor=RunTimeException.class)

3、@Transactional 註解可以被應用於介面定義和介面方法、類定義和類的 public 方法上.

相關推薦

spring事務註解@Transaction

@Transactional 可以作用於介面、介面方法、類以及類方法上。當作用於類上時,該類的所有 public 方法將都具有該型別的事務屬性,同時,我們也可以在方法級別使用該標註來覆蓋類級別的定義。@Transaction註解中常用引數說明引數名稱功能描述readOnly該

關於spring事務註解實戰

val 一個 get tips .class ane rop cat require 1.概述 spring的事務註解@Transaction 相信很多人都用過,而@Transaction 默認配置適合80%的配置。 本篇文章不是對spring註解事務做詳細介紹,而是解決一

Spring事務管理Transaction【轉】

集成 class advice nag batis spring3 ont weblogic tex Spring提供了許多內置事務管理器實現(原文鏈接:https://www.cnblogs.com/qiqiweige/p/5000086.html): DataSo

dubbo 註解spring 事務註解衝突完美解決方案

這幾天碰到dubbo 註解與spring 事務註解同時啟用dubbo註解無法生效的問題. 在網上找了大部分程式設計師們貼出的解決方案都沒有解決問題。最終在自己的分析下成功解決問題。 解決步驟如下,後面會貼出詳細分析原因。我用的Dubbo版本為2.5.3;spring MVC版本為3.2.13

spring事務Transaction )報 marked as rollback-only異常的原因及解決方法

很多朋友在使用spring+hibernate或mybatis等框架時經常遇到報Transaction rolled back because it has been marked as rollback-only的異常,這個異常是怎麼造成的 呢,下面將給大家進行詳細的分析。 &nbs

手寫Spring事務註解框架【視訊教程】

課程大綱:第一節(原始碼分析課程概述)第二節(AOP技術概述)第三節(AOP技術原理)第四節(靜態代理設計模式) 擊開啟連結第五節(動態代理設計模式)第六節(使用SpringAOP技術面向切面程式設計)

Spring入門知識 ———— Spring事務註解其他屬性(回滾、只讀、過期)

一、引言 咱們spring入門知識也接近尾聲,後續小編會時不時更新Spring原始碼解析的文章,更加深入的理解。 那麼今天來看下@Transactional這個註解的其他幾個屬性,這裡小編就只是介紹

Spring事務註解@Transactional的坑爹陷阱

生產系統核心部分特別是涉及到賬戶的批量處理,放在凌晨定時執行,結果出問題了,現象很詭異: 1)問題偶發,但沒有規律 2)程式沒有按照預定步驟處理資料庫相關資料 3)發生後也沒有發現有死鎖,但出現異常的鎖 前後折騰了三次,但一直沒有找到根源。 後來另外一個問題發生時,分析發

spring事務管理,xml配置aop事務註解配置aop事務

mov ref itcast template password nds eth poi ntc xml配置和註解配合共同代碼 AccountService.java public interface AccountService { //轉賬方法

Spring框架——批處理(batch)和事務Transaction

time mil -- 對數 upd gen 客戶 之前 oid 批處理(batch) 批處理(batch)------------>好比快遞員【不能一件一件的送快遞】 - 批處理指的是一次操作中執行多條SQL語句 - 批處理相比於一次一次執行效率會提高很多

Spring---AOP註解開發&jdbc模板&Spring事務管理

use oca update -m spl pub tex com att 一、AOP註解開發   此處需要回憶一遍AOP的概念。簡單的來說,AOP就是利用動態代理技術,做到不觸動源代碼但卻擴展了功能。那麽就需要一個被擴展的對象和一個“新的功能”,例如說給某類的saveUs

註解實現的spring事務

pri color http public emp hang 管理 urn unit 接口 1 package spring.transaction; 2 3 public interface BookDao { 4 5 //根據書名獲取書的單價

數據庫事務中的隔離級別和鎖+spring Transactional註解

遇到 丟失更新 讀鎖 討論 acid 通過 行修改 nal dbms 數據庫事務中的隔離級別和鎖 數據庫事務在後端開發中占非常重要的地位,如何確保數據讀取的正確性、安全性也是我們需要研究的問題。 ACID 首先總結一下數據庫事務正確執行的四個要素(ACID): 原子性(At

手寫spring事務註解版本)

1.首先自定義一個事務註解(類似於@Transactional) package com.itmayiedu.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retentio

淺談spring事務管理的2種方式:程式設計式事務管理和宣告式事務管理;以及@Transactional(rollbackFor=Exception.class)註解用法

事務的概念,以及特性: 百度百科介紹: ->資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。 事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過

Spring 使用註解方式進行事務管理

正在 als 也不會 實現 指定 ati nbsp 負責 spring 事務 事務的傳播行為和隔離級別 大家在使用spring的註解式事務管理時,對事務的傳播行為和隔離級別可能有點不知所措,下邊就詳細的介紹下以備方便查閱。 事物註解方式: @Transactional 當標

Spring --16.Spring基於註解的宣告事務控制

1、建立子工程、引入依賴 (同上xml方式) 2、編寫相關類、(同上xml方式) 3、開啟Spring對註解的支援、配置事務管理、開啟Spring對註解的支援 applicationContext.xml <?xml version="1.0" encoding="UTF-

spring事務(5)-----手寫SpringIOC容器框架之手寫@Service和@Resource註解

一,xml方式 註解方式就不寫了,主要就是dom4j的解析。 二,註解方式 2.1,我們先來看一下spring自帶的寫法  spring.xml <beans xmlns="http://www.springframework.org/schema/beans" xml

spring事務(6)-----手寫SpringMVC模式(手寫@RequestMapping和@Controller註解

一,spring原生態的程式碼分析 1.1,首先,我們先來認識一下SpringMVC的主要元件   前端控制器(DisatcherServlet):接收請求,響應結果,返回可以是json,String等資料型別,也可以是頁面(Model)。   處理器對映器(HandlerMap

spring 註解事務spring事務二)

xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.s