程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> spring聲明式事務治理解析

spring聲明式事務治理解析

編輯:關於JAVA

spring聲明式事務治理解析。本站提示廣大學習愛好者:(spring聲明式事務治理解析)文章只能為提供參考,不一定能成為您想要的結果。以下是spring聲明式事務治理解析正文


前沿:經由過程對spring事務治理有了比擬深刻進修,本文將不做實例,而是指定詳細的類和設置裝備擺設文件停止講授。

本文內容:

  1、懂得甚麼是聲明式事務?

  2、聲明式事務治理分離有哪幾種?

  3、這幾種事務治理之間的差別是甚麼?

1、甚麼是聲明式事務?

  聲明式事務(declarative transaction management)是spring供給的對法式事務治理的方法之一。Spring的聲明式事務就是采取聲明的方法來處置事務,用在Spring設置裝備擺設文件中聲明式的處置事務來取代代碼式的處置事務。如許的利益是,事務治理不侵入開辟的組件,詳細來講,營業邏輯對象就不會心識到正在事務治理當中,現實上也應當如斯,由於事務治理是屬於體系層面的辦事,而不是營業邏輯的一部門,假如想要更改事務治理,也只須要在界說的設置裝備擺設文件中修正設置裝備擺設便可,在不須要事務治理的時刻,只需在設置裝備擺設文件上修正一下,便可移去事務治理辦事,無需轉變代碼從新編譯,如許保護起來極端便利。

2、聲明式事務治理方法。  

起首在還沒說聲明式事務治理方法之前先看看原始的事務治理。

  由上圖可以看出,起首我們須要樹立一個新的session.openSession(),其次經由過程session的getTransaction().begin()辦法和getTransaction().commit()辦法停止事務創立和事務提交,而且須要封閉session.close(),如許一來我們每次挪用這個辦法都邑從新創立一個新的session,都要重復的做一樣的工作,如許就不相符我們的軟件工程設計思惟,接上去我們應用聲明式事務治理方法停止對代碼的簡化和調劑。

1、應用springAOP聲明式事務治理。

1.1、我們須要導入aop的幾個包:

  

1.2、然後在application.xml設置裝備擺設文件中停止事務設置裝備擺設: 

1.3、將查詢一切數據誰人辦法停止修正:

  經由下面講授,我們可以看得出對showAllNews()辦法的修正,起首我們將本來的openSession()辦法改成了getCurrentSession()辦法(注:截圖有正文解釋他們的差別,我就不再反復),而且不須要再手動去創立事務和提交事務,我們的springAOP會主動對事務停止治理、主動的封閉session。

2、應用@Transactional注解方法。

2.1、起首我們須要在application.xml設置裝備擺設文件中停止事務設置裝備擺設(告訴Spring容器對注解@Transactional的Bean處置):

2.2、然後在NewsDaoImpl中不須要做任何的操作和修正:

2.3、給NewsServiceImpl添加注解。

在這裡我們@Transactional注解可以添加到類上(表現一切的辦法都參加事務治理),也能夠在詳細的辦法加上注解@Transactional,假如是不消對數據停止修正的辦法要添加一個屬性。

好比:查詢一切數據的辦法@Transactional(readOnly=true)

 

3、應用SpringAOP設置裝備擺設的聲明式事務治理跟@Transactional注解的差別:

   1)SpringAOP設置裝備擺設聲明式事務治理耦合性低,可讀性低,表達較具體,靈巧性也高。

   2)@Transactional注解可讀性較高,內容疏散晦氣於同一的治理和保護,耦合性較高。

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved