日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

概念

AOP是“面向方面編程”,要解決的問題是,把重復性的橫切邏輯獨立出來,然后融合到業務邏輯中,達到和原來一樣的業務流程;

AOP的工作重心在于如何將增強應用于目標對象的連接點上。這里包括兩項工作:

  • 第一、如何通過切點和增強定位到連接點上:
  • 第二、如何在增強中編寫切面的代碼。

1、連接點

是程序執行的某個特定位置,如類開始初始化前、類初始化后、類的某個方法調用前/調用后、方法拋出異常后。

一個類或一段程序代碼擁有一些具有邊界性質的特定點,這些代碼中的特定點就被稱為“連接點”。

連接點由兩個信息確定:

  • 一是用方法表示的程序執行點;
  • 二是用相對位置表示的方位;

2、切點

每個程序類都擁有多個連接點,如一個擁有兩個方法的類,這兩個方法都是連接點,

即連接點是程序類中客觀存在的事物。

但在為數眾多的連接點中,如何定位某些感興趣的連接點呢? AOP 通過“切點”定位特定的接連點。

用數據庫查詢的概念來理解切點和連接點的關系再合適不過了:連接點相當于數據庫中的記錄,而切點相當于查詢條件。

切點和連接點不是一對一的關系,一個切點可以匹配多個連接點。

在Spring中,切點通過org.springframework.aop.Pointcut 接口進行描述,它使用類和方法作為連接點的查詢條件,SpringAOP的規則解析引擎負責解析切點所設定的查詢條件,找到對應的連接點。

確切地說,應該是執行點而非連接點,因為連接點是方法執行前、執行后等包括方位信息的具體程序執行點,而切點只定位到某個方法上,所以如果希望定位到具體的連接點上,還需要提供方位信息。

3、增強(Advice)

增強是織入目標類連接點上的一段程序代碼,在Spring中,增強除用于描述一段程序代碼外, 還擁有另一個和連接點相關的信息,這便是執行點的方位。結合執行點的方位信息和切點信息,就可以找到特定的連接。

正因為增強既包含用于添加到目標連接點上的一段執行邏輯, 又包含用于定位連接點的方位信息,所以Spring 所提供的增強接口都是帶方位名的,如BeforeAdvice 、AfterReturningAdvice、ThrowsAdvice 等。

BeforeAdvice 表示方法調用前的位置,而AferRetunningAdvice表示訪問返回后的位置。所以只有結合切點和增強,才能確定特定的連接點并實施增強邏輯。

4、目標對象(Target)

目標對象可以理解為業務邏輯,增強邏輯的織入目標類,如果沒有AOP,那么業務邏輯需要完成業務邏輯+所有非橫切邏輯;

5、引介(Introduction)

引介是一種特殊的增強,它為類添加一些屬性和方法。這樣,即使一個業務類原本沒有實現某個接口,通過AOP的引介功能,也可以動態地為該業務類添加接口的實現邏輯,讓業務類成為這個接口的實現類。

6、織入(Weaving)

織入是將增強添加到目標類的具體連接點上的過程。AOP就像一- 臺織布機,將目標類、增強或者引介天衣無縫地編織到- -起。我們不能不說“織入”這個詞太精辟了。

根據不同的實現技術,AOP有3種織入方式:

  • (1)編譯期織入,這要求使用特殊的JAVA編譯器。
  • (2)類裝載期織入,這要求使用特殊的類裝載器。
  • (3)動態代理織入,在運行期為目標類添加增強生成子類的方式。

Spring采用動態代理織入,而AspectJ采用編譯期織入和類裝載期織入。

7、代理(Proxy)

一個類被AOP織入增強后,就產生了一個結果類,它是融合了原類和增強邏輯的代理類。

根據不同的代理方式,代理類既可能是和原類具有相同接口的類,也可能就是原類的子類,所以可以采用與調用原類相同的方式調用代理類。

8.切面(Aspect)

切面由切點和增強(引介)組成,它既包括橫切邏輯的定義,也包括連接點的定義。

Spring AOP就是負責實施切面的框架,它將切面所定義的橫切邏輯織入切面所指定的連

接點中。

分享到:
標簽:Spring AOP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定