Spring框架目前如此流行,一方面的原因在于Spring提供了一套全面并且十分成熟的輕型應(yīng)用程序基本框架,并且對復雜的應(yīng)用開發(fā)提供了有力的支持。除此之外,從實際應(yīng)用開發(fā)角度來看,Spring最大的優(yōu)勢在于它是從實際項目開發(fā)經(jīng)驗中抽取的,其提供了豐富的類庫,可大大節(jié)省編碼量,它是一種高效的、可高度重用的應(yīng)用框架。Spring框架中目前最吸引人也是該應(yīng)用框架最具特色的地方就是名為控制反轉(zhuǎn)(IOC=Inverse Of Control)或者依靠注入(DI=Dependence Injection)的設(shè)計思想,這是一種相當優(yōu)秀的設(shè)計思想,即“好萊塢”原則:不用你主動來找我,我會通知你。但是,僅僅憑借著這樣一個單純的設(shè)計模式并不能使得Spring如此成功,Spring最成功的地方,還是目前使用最為廣泛的AOP應(yīng)用,也就是Spring中基于AOP實現(xiàn)的業(yè)務(wù)治理機制,也正是由于這一點,使得Spring AOP成為應(yīng)用框架中極其閃光的一個亮點。
我們先來分析一下Spring事務(wù)治理機制的實現(xiàn)原理。由于Spring內(nèi)置AOP默認使用動態(tài)代理模式實現(xiàn),我們就先來分析一下動態(tài)代理模式的實現(xiàn)方法。動態(tài)代理模式的核心就在于代碼中不出現(xiàn)與具體應(yīng)用層相關(guān)聯(lián)的接口或者類引用,如上所說,這個代理類適用于任何接口的實現(xiàn)。下面我們來看一個例子。 public class TxHandler implements InvocationHandler {