中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

建設網(wǎng)站 懷疑對方傳銷 網(wǎng)站制作 緩刑在線網(wǎng)頁編輯平臺

建設網(wǎng)站 懷疑對方傳銷 網(wǎng)站制作 緩刑,在線網(wǎng)頁編輯平臺,做物流網(wǎng)站注意什么,網(wǎng)站建設和網(wǎng)站推廣目錄 1.什么是Spring 事務 2.Spring 事務的開啟方式 3.Spring事務的實現(xiàn)方式/原理 4.事務傳播機制 5.事務隔離級別 6.事務失效的原因 1.什么是Spring 事務 事務在邏輯上是一組操作,要么執(zhí)行,要不都不執(zhí)行。 如下: Begin; insert into…

目錄

1.什么是Spring 事務

2.Spring 事務的開啟方式

3.Spring事務的實現(xiàn)方式/原理

4.事務傳播機制

5.事務隔離級別

6.事務失效的原因


1.什么是Spring 事務

事務在邏輯上是一組操作,要么執(zhí)行,要不都不執(zhí)行。

如下:

Begin;
insert into student values(1,"test",22,"male");
select * from student;
commit;

上述SQL語句,一般情況是一句一句提交并執(zhí)行;而開啟事務后,上述語句會一起提交并執(zhí)行。

事務操作本來應該由數(shù)據(jù)庫進行控制,但為了方便用戶進行業(yè)務邏輯的拓展,spring對事務功能進行了拓展實現(xiàn)。

所以,Spring 事務其實是數(shù)據(jù)庫事務的拓展而已。其根本上,還是要連接數(shù)據(jù)庫,并開啟數(shù)據(jù)庫事務進行執(zhí)行或者回滾等操作。

2.Spring 事務的開啟方式

Spring支持兩種事務方式,分別是編程式事務(用戶通過代碼來控制事務的處理邏輯)和聲明式事務(通過@Transactional注解實現(xiàn))。一般我們開發(fā)中使用聲明式事務較多。

	// 默認是RuntimeException就回滾,傳播機制為REQUIRED@Transactionalpublic boolean transactionTest(UserAccount user) {try {//業(yè)務執(zhí)行邏輯//userDao.insert(user);int i =0;    //模擬業(yè)務出錯i = 100 /i;}catch (Exception e){log.error("被除數(shù)為0");//事務回滾TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();return false;}return true;}
	//數(shù)據(jù)源@Autowiredprivate DataSourceTransactionManager dataSourceTransactionManager;//事務@AutowiredTransactionDefinition transactionDefinition;public Boolean execute(){// 手動開啟事務TransactionStatus transactionStatus = null;try {//獲取事務對象transactionStatus =dataSourceTransactionManager.getTransaction(transactionDefinition);// 具體代碼邏輯// 提交事務dataSourceTransactionManager.commit(transactionStatus);} catch (Exception e) {log.error("xxxxxx",e);if (ts != null) {dataSourceTransactionManager.rollback(ts);}throw new RollBackException("業(yè)務出錯了!");}return true;}

上述代碼皆為聲明式事務:代碼段1中使用@Transactional注解開啟,較為便捷;代碼段2則是手動開啟事務,通過TransactionDefinition對象來開啟并提交事務。

3.Spring事務的實現(xiàn)方式/原理

Spring事務是是由AOP來實現(xiàn)的,主要通過TransactionInterceptor類,調(diào)用invoke()方法實現(xiàn)具體邏輯。

首先,當一個方法添加@Transactional后,spring會基于這個類生成一個代理對象。

當使用這個代理對象的方法時,解析方法上事務相關的屬性,判斷是否開啟事務。若開啟,則把關閉自動提交,開啟事務執(zhí)行具體的業(yè)務邏輯。

(invokeWithinTransaction方法中,獲取事務屬性相關代碼,主要判斷事務的類型)

如果執(zhí)行邏輯沒有出現(xiàn)異常,那么代理邏輯會通過cmomitTransactionAfterReturning()完成事務的提交,提交的具體邏輯則是由doCommit()實現(xiàn);

如果出現(xiàn)異常,那么會通過completeTransactionAfterThrowing()進行回滾操作,具體邏輯由doRollBack()實現(xiàn)。同時,用戶也可以控制對哪些異常進行回滾操作。

事務執(zhí)行完畢,會調(diào)用cleanupTransactioninfo()清除相關的事務信息。

(invokeWithinTransaction方法中,聲明式事務的具體執(zhí)行邏輯)

4.事務傳播機制

事物的傳播機制是指不同方法的嵌套調(diào)用過程中,事務如何進行處理,事務之間的相互處理關系。比如說,A類中的a方法要調(diào)用B類中的b方法,是用同一個事務還是兩個事務;出現(xiàn)異常是回滾還是提交。

具體分為7種:以做作業(yè)為例進行解釋

  1. REQUIRED:默認傳播特性,如果當前沒有事務,則新建事務;如果當前存在事務,則加入事務。(你做作業(yè),我就抄一下;你沒做作業(yè),我就自己做)
  2. SUPPORTS:當前存在事務,則加入事務;當前沒有事務,則以非事務方式執(zhí)行。(你做作業(yè),我就抄一下,你沒做作業(yè),我也不做)
  3. MANDATORY:當前存在事務,則加入事務;當前沒有事務,拋出異常。(你做作業(yè),我就抄一下,你沒做作業(yè),警告你)
  4. REQUIRED_NEW:創(chuàng)建一個新事物,如果當前存在事務,則掛起事務。(不過你有沒有做作業(yè),我都自己做)
  5. NOT_SUPPORTED: 以非事務方式執(zhí)行, 如果當前存在事務,則掛起事務。(大家都不做作業(yè),如果你做了,我把你作業(yè)撕掉)
  6. NEVER:不使用事務,如果當前事務存在,拋出異常。
  7. NESTED:如果當前事務存在,則在嵌套事務(設立保存點,保存父事務的狀態(tài),出現(xiàn)異常時只有子事務會回滾)中執(zhí)行,否則與REQUIRED一致。

?一般開發(fā)中,使用 required、required_new、nested較多。

5.事務隔離級別

Spring 事務中的事務隔離級與數(shù)據(jù)庫的數(shù)據(jù)隔離級別是一致的:

Read uncommitted:讀未提交;read committed讀已提交;repeatable read可重復讀;serializable:串行化。

值得一提的是:如果數(shù)據(jù)庫與spring隔離級別不一致,以spring配置為主。

6.事務失效的原因

一些情況下會導致事務失效,可能的原因如下;

  • 1)bean對象沒有被spring容器管理。
  • 2)方法的訪問修飾符不是public。
  • 3)自身調(diào)用問題。
  • 4)數(shù)據(jù)源沒有配置事務管理器。
  • 5)數(shù)據(jù)庫不支持事務。
  • 6)異常被捕捉。
  • 7)異常類型錯誤或者配置錯誤。
http://www.risenshineclean.com/news/54586.html

相關文章:

  • 建設一個電子商務網(wǎng)站seo 優(yōu)化公司
  • 做視頻怎么去除網(wǎng)站泉州排名推廣
  • WordPress關站插件廣州今天新聞
  • 做it公司網(wǎng)站站長域名查詢工具
  • 政府網(wǎng)站建設整改情況汕頭網(wǎng)絡營銷公司
  • b2c網(wǎng)站代表和網(wǎng)址做銷售最掙錢的10個行業(yè)
  • 豐胸個人網(wǎng)站建設上海優(yōu)化網(wǎng)站公司哪家好
  • 英文自助建站排行榜哪個網(wǎng)站最好
  • 怎么做網(wǎng)站開發(fā)的方案線上營銷推廣方式
  • wordpress電腦安裝教程網(wǎng)站seo優(yōu)化報告
  • 揚州網(wǎng)站建設網(wǎng)絡營銷的方法
  • 科技公司網(wǎng)站源碼企業(yè)網(wǎng)站的優(yōu)化建議
  • 只用django做網(wǎng)站友情鏈接購買平臺
  • 專做網(wǎng)站的公司免費網(wǎng)站制作
  • wordpress自定義模塊鄭州粒米seo外包
  • 免費搭建網(wǎng)站模板淘寶客怎么做推廣
  • 網(wǎng)上電商教程seo優(yōu)化招聘
  • 阿里云從哪里建設網(wǎng)站交換友情鏈接的渠道有哪些
  • 備案期間網(wǎng)站要關閉嗎seo優(yōu)化查詢
  • 服裝網(wǎng)站建設任務表網(wǎng)站推廣和優(yōu)化系統(tǒng)
  • 畢設什么類型網(wǎng)站容易做國外廣告聯(lián)盟平臺
  • 貨架 網(wǎng)站建設 牛商網(wǎng)友情鏈接圖片
  • 專業(yè)簡章佛山seo優(yōu)化外包
  • wordpress主頁百度seo營銷
  • 西安網(wǎng)站制作的公司重慶森林臺詞
  • 黃山網(wǎng)站建設推廣靠網(wǎng)絡營銷火起來的企業(yè)
  • 肥西網(wǎng)站推廣公司今日國內(nèi)新聞大事
  • 什么公司可以做網(wǎng)站等級保護宣傳方式
  • 網(wǎng)站型銷售怎么做的疫情最新數(shù)據(jù)
  • 天津網(wǎng)站建設吐魯番地區(qū)百度電腦端入口