spring聲明式事務(wù)管理詳情解析
前沿:通過對(duì)spring事務(wù)管理有了比較深入學(xué)習(xí),本文將不做實(shí)例,而是指定具體的類和配置文件進(jìn)行講解。
本文內(nèi)容:
1、了解什么是聲明式事務(wù)?
2、聲明式事務(wù)管理分別有哪幾種?
3、這幾種事務(wù)管理之間的區(qū)別是什么?
一、什么是聲明式事務(wù)?
聲明式事務(wù)(declarative transaction management)是spring提供的對(duì)程序事務(wù)管理的方式之一。Spring的聲明式事務(wù)就是采用聲明的方式來處理事務(wù),用在Spring配置文件中聲明式的處理事務(wù)來代替代碼式的處理事務(wù)。這樣的好處是,事務(wù)管理不侵入開發(fā)的組件,具體來說,業(yè)務(wù)邏輯對(duì)象就不會(huì)意識(shí)到正在事務(wù)管理之中,事實(shí)上也應(yīng)該如此,因?yàn)槭聞?wù)管理是屬于系統(tǒng)層面的服務(wù),而不是業(yè)務(wù)邏輯的一部分,如果想要更改事務(wù)管理,也只需要在定義的配置文件中修改配置即可,在不需要事務(wù)管理的時(shí)候,只要在配置文件上修改一下,即可移去事務(wù)管理服務(wù),無需改變代碼重新編譯,這樣維護(hù)起來極其方便。
由上圖可以看出,首先我們需要建立一個(gè)新的session.openSession(),其次通過session的getTransaction().begin()方法和getTransaction().commit()方法進(jìn)行事務(wù)創(chuàng)建和事務(wù)提交,并且需要關(guān)閉session.close(),這樣一來我們每次調(diào)用這個(gè)方法都會(huì)重新創(chuàng)建一個(gè)新的session,都要反復(fù)的做一樣的事情,這樣就不符合我們的軟件工程設(shè)計(jì)思想,接下來我們使用聲明式事務(wù)管理方式進(jìn)行對(duì)代碼的簡(jiǎn)化和調(diào)整。
1、使用springAOP聲明式事務(wù)管理。