真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Spring框架中AOP技術(shù)是什么

這篇文章主要介紹了Spring框架中AOP技術(shù)是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

公司專注于為企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號(hào)開發(fā)、成都做商城網(wǎng)站,成都小程序開發(fā),軟件定制網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗(yàn),我們會(huì)仔細(xì)了解各客戶的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。

AOP并不是spring中所獨(dú)創(chuàng)的技術(shù),因?yàn)锳OP可以理解為是一種編程思想,例如OOP(面向?qū)ο缶幊蹋┮粯?。只是最近它才被作為一?xiàng)技術(shù)真正的用于軟件開發(fā)中的。那么到底什么是AOP呢?AOP的全稱為Aspect Oriented Programing??捶g我們基本就可以猜出AOP的名字了,也就就是我們常常聽說的面象切面編程。我們通過下面的例子來展示AOP到底能夠解決我的方法中的什么問題?

我們?cè)谌粘i_發(fā)時(shí)知道,如果多個(gè)類中有相同的代碼,那么我們就要考慮抽取一個(gè)公共的抽象類或接口,將多個(gè)類中的相同的代碼提取到抽象類中去實(shí)現(xiàn),不同的邏輯放到相應(yīng)的子類中去處理,這樣不但方便我們開發(fā)與維護(hù),還遵循了軟件重構(gòu)的思想。那么這樣真的能消除掉決子類中的重復(fù)代碼嗎?我們看下面的例子:

Spring框架中AOP技術(shù)是什么

Spring框架中AOP技術(shù)是什么

我們看上述的代碼UserService類中只有簡(jiǎn)單的代碼,我們用一條輸出語句代替具體的業(yè)務(wù)邏輯,但是在我們?nèi)粘i_發(fā),常常需要向上述的代碼一樣,為相應(yīng)的邏輯添加事物以解決一致性的問題。這時(shí)上述的代碼的弊端也就展現(xiàn)出來的,也就是業(yè)務(wù)代碼中會(huì)有大量的事物管理的代碼,并且這些代碼,我們并沒辦法法通過提取抽象類的方法解決。這時(shí)如果我們想要消除到業(yè)務(wù)邏輯里的事物代碼就要考慮使用AOP解決了。那么spring中怎么用AOP解決上述問題呢?先不要著急,我們先拋磚引玉在后面的文章中我們?cè)诳淳唧w的解決辦法法,我們接下來了解一下spring中AOP其它方法的知識(shí)。

在spring的AOP中定義了一些基本的術(shù)語,我們下面將介紹這些術(shù)語的具體名字與作用。

  • 連接點(diǎn)

程序執(zhí)行的某個(gè)特定位置,也就是類的方法調(diào)用前、調(diào)用后、方法拋出異常后等。在spring中連接點(diǎn)只支持方法的連接點(diǎn),也就是只能在類的方法調(diào)用前、調(diào)用后、方法拋出異常后等。

  • 切點(diǎn)

切點(diǎn)就也是定位特定的連接的。簡(jiǎn)單一點(diǎn)的比喻就是連接點(diǎn)相當(dāng)于數(shù)據(jù)庫的記錄,而切點(diǎn)就相當(dāng)于查詢條件。所以,在spring中切點(diǎn)與連接點(diǎn)不是一一對(duì)應(yīng)的關(guān)系,一個(gè)切點(diǎn)可以匹配多個(gè)連接點(diǎn)。

  • 增強(qiáng)

增強(qiáng)就是添加到目標(biāo)類連接點(diǎn)上的代碼,也就是上述我們例子中的添加事物的代碼。正是因?yàn)槿绱?,所有spring為我們提供的增強(qiáng)接口都是帶方位名的,例如BeforeAdvice、AfterReturningAdvice等。

  • 目標(biāo)對(duì)象

也就是添加增強(qiáng)邏輯的目標(biāo)類。

  • 引介

一種特殊的增強(qiáng),它可以為類添加一些屬性和方法。即使這個(gè)類沒有實(shí)現(xiàn)某個(gè)接口,通過引介也可以動(dòng)態(tài)為該類添加接口的實(shí)現(xiàn)邏輯。

  • 織入

織入就是將增強(qiáng)添加到目標(biāo)類具體連接點(diǎn)的過程。AOP有三種類型的織入它們分別是:

  1. 編譯期織入

  2. 類裝載期織入

  3. 動(dòng)態(tài)代理織入,在運(yùn)行期為目標(biāo)類添加增強(qiáng)生成子類的方法。

spring采用動(dòng)態(tài)織入,而AspectJ采用編譯織入和類裝載期織入。

  • 代理

目標(biāo)類被增強(qiáng)后就會(huì)生成一個(gè)新的包括增強(qiáng)邏輯的代理類。我們就是使用這個(gè)代理類,來完成我們橫切的邏輯。

  • 切面

切面由切點(diǎn)和增強(qiáng)組成,它即包括橫切的邏輯,也包括連接點(diǎn)的定義。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Spring框架中AOP技術(shù)是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!


網(wǎng)站題目:Spring框架中AOP技術(shù)是什么
鏈接URL:http://weahome.cn/article/iedpis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部