這篇文章主要介紹“Spring AOP框架的作用和使用方法”,在日常操作中,相信很多人在Spring AOP框架的作用和使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spring AOP框架的作用和使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
創(chuàng)新互聯(lián)建站主要業(yè)務有網(wǎng)站營銷策劃、網(wǎng)站制作、成都網(wǎng)站設計、微信公眾號開發(fā)、小程序定制開發(fā)、H5開發(fā)、程序開發(fā)等業(yè)務。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當客戶,還把客戶視為我們的合作伙伴,在開展業(yè)務的過程中,公司還積累了豐富的行業(yè)經(jīng)驗、全網(wǎng)整合營銷推廣資源和合作伙伴關系資源,并逐漸建立起規(guī)范的客戶服務和保障體系。
在向大家詳細介紹Spring AOP框架之前,首先讓大家了解下Spring裝配組件事務,然后全面介紹Spring AOP框架
本文主要探討Spring AOP框架,包括其事務上下文。從J2EE應用程序內部連接到單個的數(shù)據(jù)庫并不是什么難事。但是,如果要裝配或者集成企業(yè)級的組件,情況就復雜了。一個組件可以有一個或多個支持它的數(shù)據(jù)庫,因此,當裝配兩個或更多的組件時,我們希望能夠保持在跨組件的多個數(shù)據(jù)庫中進行的操作的原子性。J2EE服務器為這些組件提供了一個容器來保證事務原子性和跨組件獨立性。如果使用的不是J2EE服務器,則可以利用Spring來幫助我們。Spring基于Inversion of Control(控制反轉)模式(也稱為依賴注入),它不僅可以連接組件服務,還可以連接關聯(lián)的事務上下文。在本文中,我們將Hibernate用作對象/關系持久性存儲和查詢服務。
裝配組件事務
假設在企業(yè)組件庫里,我們已經(jīng)有一個審計組件,里面有可以被客戶端調用的服務方法。然后,當我們想要構建一個訂單處理系統(tǒng)時,我們發(fā)現(xiàn)存在這樣的設計要求:OrderListManager組件服務同樣需要審計組件服務。OrderListManager創(chuàng)建和管理訂單,因此所有的 OrderListManager服務都有自己的事務屬性。當我們從OrderListManager服務內調用審計組件時,我們實際上是在把 OrderListManager服務的事務上下文傳播給審計服務。也許將來新的業(yè)務服務組件同樣需要審計組件,但那時將在一個不同的事務上下文中調用它。實際結果就是,即使審計組件的功能保持不變,它也可能是由別的業(yè)務服務功能組成,包含了混搭的(mix-and-match)事務屬性來提供不同的運行時事務性行為。
如果客戶端有TX上下文,那么OrderListManager既可以參與其中,也可以啟動一個新的TX,這取決于客戶端是否在TX中,以及為OrderListManager方法指定了什么樣的TX屬性。這同樣適用于 OrderListManager服務依次調用AuditManager方法的情況。
EJB架構允許組件裝配者聲明式地給出正確的事務屬性,從而為他們提供這種靈活性。我們不探討聲明式事務管理的替代方案(即所謂的編程式事務控制),因為這會牽涉到代碼更改,從而產(chǎn)生不同的運行時事務行為。幾乎所有的J2EE應用服務器都按照X/Open XA規(guī)范提供了服從兩階段提交協(xié)議的分布式事務管理器?,F(xiàn)在的問題是,我們能不能利用EJB服務器來實現(xiàn)相同的功能?Spring就是其中的一種解決方案。讓我們來看一下Spring如何幫助我們解決事務組裝的問題:
使用Spring進行事務管理
我們將看到一個輕量級的事務基礎架構,它實際上可以管理組件級的事務裝配。Spring是其中的一個解決方案。它的優(yōu)點在于,我們不會被捆綁到 J2EE容器服務(如JNDI DataSource)上。最棒的一點是,如果我們想把這個輕量級事務基礎架構關聯(lián)到一個已可用的J2EE容器基礎架構,將不會有任何問題??雌饋砦覀兛梢岳脙烧叩膬?yōu)點。
另一方面,Spring這個輕量級事務基礎架構使用了一個面向方面編程(Aspect-Oriented Programming,AOP)框架。Spring AOP框架使用了一個支持AOP的Spring bean工廠。在特定于Spring的配置文件applicationContext.xml中,通過在組件服務級指定事務特性來劃分事務。
<beans>
<!-- other code goes here... -->
<bean id="orderListManager"class="org.springframework.
transaction.interceptor.TransactionProxyFactoryBean"><property name="transactionManager">
<ref local="transactionManager1"/>
</property>
<property name="target">
<ref local="orderListManagerTarget"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="getAllOrderList">
PROPAGATION_REQUIRED
</prop>
<prop key="getOrderList">
PROPAGATION_REQUIRED
</prop>
<prop key="createOrderList">
PROPAGATION_REQUIRED
</prop>
<prop key="addLineItem">
PROPAGATION_REQUIRED,-com.example.exception.FacadeException
</prop>
<prop key="getAllLineItems">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="queryNumberOfLineItems">
PROPAGATION_REQUIRED,readOnly
</prop>
</props>
</property>
</bean>
</beans>
到此,關于“Spring AOP框架的作用和使用方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
本文題目:SpringAOP框架的作用和使用方法
文章來源:http://jinyejixie.com/article10/ghhego.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站收錄、云服務器、網(wǎng)站設計、網(wǎng)站策劃、微信小程序
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)