2016-11-11 分類: 網(wǎng)站建設(shè)
大家都知道,AOP模塊是 Spring的核心模塊,雖然在Java社區(qū)里 Aspectj是最完整的AOP
框架,但 Spring AOP也提供了另外一種實(shí)現(xiàn),這種實(shí)現(xiàn)并不是 Aspectj的競(jìng)爭(zhēng)者,相反,
Spring AOP還將 Aspectj集成了進(jìn)來(lái),為IoC容器和 Spring應(yīng)用開(kāi)發(fā)提供了一個(gè)一致性的AOP解決方案。
Spring AOP的核心技術(shù)是上一小節(jié)介紹的JDK動(dòng)態(tài)代理技術(shù)。以動(dòng)態(tài)代理技術(shù)為基礎(chǔ),
設(shè)計(jì)出了一系列AOP的橫切實(shí)現(xiàn),比如前置通知、返回通知、異常通知等。同時(shí), SpringAOP還提供了一系列的Pointcut來(lái)匹配切入點(diǎn),可以使用現(xiàn)有的切入點(diǎn)來(lái)設(shè)計(jì)橫切面,也可以擴(kuò)展相關(guān)的 Pointcut方法來(lái)實(shí)現(xiàn)切入需求。
在Spring AOP中,雖然對(duì)于AOP的使用者來(lái)說(shuō),只需要配置相關(guān)的Bean定義即可,但仔細(xì)分析 Spring AOP的內(nèi)部設(shè)計(jì)可以看到,為了讓AOP起作用,需要完成一系列過(guò)程,比如,需要為目標(biāo)對(duì)象建立代理對(duì)象,這個(gè)代理對(duì)象可以通過(guò)使用JDK的 Proxy來(lái)完成,也可以通過(guò)第三方的類生成器 CGLIB來(lái)完成。然后,還需要啟動(dòng)代理對(duì)象的攔截器來(lái)完成各種橫切面的織入,這一系列的織入設(shè)計(jì)是通過(guò)一系列 Adapter來(lái)實(shí)現(xiàn)的。通過(guò)一系列Adapter的設(shè)計(jì),可以把AOP的橫切面設(shè)計(jì)和 Proxy模式有機(jī)地結(jié)合起來(lái),從而實(shí)現(xiàn)在AOP中定義好的各種織入方式。具體的設(shè)計(jì)實(shí)現(xiàn)可以參考后面的內(nèi)容,這里只是簡(jiǎn)要介紹一下。
文章題目:Spring AOP的設(shè)計(jì)分析
URL地址:http://jinyejixie.com/news/64713.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、網(wǎng)站制作、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站制作、搜索引擎優(yōu)化、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容