最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring聲明式事務(wù)管理解析

 更新時間:2016年10月24日 17:24:16   作者:程序_小咖  
這篇文章主要為大家詳細(xì)介紹了spring聲明式事務(wù)管理,對spring事務(wù)管理進(jìn)行深入了解,感興趣的小伙伴們可以參考一下

前沿:通過對spring事務(wù)管理有了比較深入學(xué)習(xí),本文將不做實例,而是指定具體的類和配置文件進(jìn)行講解。

本文內(nèi)容:

  1、了解什么是聲明式事務(wù)?

  2、聲明式事務(wù)管理分別有哪幾種?

  3、這幾種事務(wù)管理之間的區(qū)別是什么?

一、什么是聲明式事務(wù)?

  聲明式事務(wù)(declarative transaction management)是spring提供的對程序事務(wù)管理的方式之一。Spring的聲明式事務(wù)就是采用聲明的方式來處理事務(wù),用在Spring配置文件中聲明式的處理事務(wù)來代替代碼式的處理事務(wù)。這樣的好處是,事務(wù)管理不侵入開發(fā)的組件,具體來說,業(yè)務(wù)邏輯對象就不會意識到正在事務(wù)管理之中,事實上也應(yīng)該如此,因為事務(wù)管理是屬于系統(tǒng)層面的服務(wù),而不是業(yè)務(wù)邏輯的一部分,如果想要更改事務(wù)管理,也只需要在定義的配置文件中修改配置即可,在不需要事務(wù)管理的時候,只要在配置文件上修改一下,即可移去事務(wù)管理服務(wù),無需改變代碼重新編譯,這樣維護(hù)起來極其方便。

二、聲明式事務(wù)管理方式。  

首先在還沒說聲明式事務(wù)管理方式之前先看看原始的事務(wù)管理。

  由上圖可以看出,首先我們需要建立一個新的session.openSession(),其次通過session的getTransaction().begin()方法和getTransaction().commit()方法進(jìn)行事務(wù)創(chuàng)建和事務(wù)提交,并且需要關(guān)閉session.close(),這樣一來我們每次調(diào)用這個方法都會重新創(chuàng)建一個新的session,都要反復(fù)的做一樣的事情,這樣就不符合我們的軟件工程設(shè)計思想,接下來我們使用聲明式事務(wù)管理方式進(jìn)行對代碼的簡化和調(diào)整。

1、使用springAOP聲明式事務(wù)管理。

1.1、我們需要導(dǎo)入aop的幾個包:

  

1.2、然后在application.xml配置文件中進(jìn)行事務(wù)配置: 

1.3、將查詢所有數(shù)據(jù)那個方法進(jìn)行修改:

  經(jīng)過上面講解,我們可以看得出對showAllNews()方法的修改,首先我們將原來的openSession()方法改為了getCurrentSession()方法(注:截圖有注釋說明他們的區(qū)別,我就不再重復(fù)),并且不需要再手動去創(chuàng)建事務(wù)和提交事務(wù),我們的springAOP會自動對事務(wù)進(jìn)行管理、自動的關(guān)閉session。

2、使用@Transactional注解方式。

2.1、首先我們需要在application.xml配置文件中進(jìn)行事務(wù)配置(通知Spring容器對注解@Transactional的Bean處理):

2.2、然后在NewsDaoImpl中不需要做任何的操作和修改:

2.3、給NewsServiceImpl添加注解。

在這里我們@Transactional注解可以添加到類上(表示所有的方法都加入事務(wù)管理),也可以在具體的方法加上注解@Transactional,如果是不用對數(shù)據(jù)進(jìn)行修改的方法要添加一個屬性。

比如:查詢所有數(shù)據(jù)的方法@Transactional(readOnly=true)

 

3、使用SpringAOP配置的聲明式事務(wù)管理跟@Transactional注解的區(qū)別:

   1)SpringAOP配置聲明式事務(wù)管理耦合性低,可讀性低,表達(dá)較詳細(xì),靈活性也高。

   2)@Transactional注解可讀性較高,內(nèi)容分散不利于統(tǒng)一的管理和維護(hù),耦合性較高。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

内江市| 龙江县| 靖安县| 古交市| 微山县| 巴中市| 大关县| 维西| 调兵山市| 竹山县| 婺源县| 达尔| 察哈| 香港| 盈江县| 通道| 桂平市| 江永县| 莱阳市| 获嘉县| 萝北县| 湘西| 南丹县| 连平县| 大石桥市| 广灵县| 绥阳县| 亳州市| 垣曲县| 疏勒县| 沈丘县| 阜城县| 平昌县| 长海县| 遵义县| 镇江市| 洛南县| 临沂市| 江达县| 滨海县| 鲁山县|