1、AOP術語
1)連接點(Joinpoint) 程式執行的某個特定位置:如類開始初始化前、類初始化后、類某個方法呼叫前、呼叫后、方法拋出例外后,一個類或一段程式代碼擁有一些具有邊界性質的特定點,這些點中的特定點就稱為“連接點”,Spring僅支持方法的連接點,即僅能在方法呼叫前、方法呼叫后、方法拋出例外時以及方法呼叫前后這些程式執行點織入增強,連接點由兩個資訊確定:第一是用方法表示的程式執行點;第二是用相對點表示的方位, 2)切點(Pointcut) 每個程式類都擁有多個連接點,如一個擁有兩個方法的類,這兩個方法都是連接點,即連接點是程式類中客觀存在的事物,AOP通過“切點”定位特定的連接點,連接點相當于資料庫中的記錄,而切點相當于查詢條件,切點和連接點不是一對一的關系,一個切點可以匹配多個連接點,在Spring中,切點通過org.springframework.aop.Pointcut介面進行描述,它使用類和方法作為連接點的查詢條件,Spring AOP的規則決議引擎負責切點所設定的查詢條件,找到對應的連接點,其實確切地說,不能稱之為查詢連接點,因為連接點是方法執行前、執行后等包括方位資訊的具體程式執行點,而切點只定位到某個方法上,所以如果希望定位到具體連接點上,還需要提供方位資訊, 3)增強(Advice) 增強是織入到目標類連接點上的一段程式代碼,在Spring中,增強除用于描述一段程式代碼外,還擁有另一個和連接點相關的資訊,這便是執行點的方位,結合執行點方位資訊和切點資訊,我們就可以找到特定的連接點, 4)目標物件(Target) 增強邏輯的織入目標類,如果沒有AOP,目標業務類需要自己實作所有邏輯,而在AOP的幫助下,目標業務類只實作那些非橫切邏輯的程式邏輯,而性能監視和事務管理等這些橫切邏輯則可以使用AOP動態織入到特定的連接點上, 5)引介(Introduction) 引介是一種特殊的增強,它為類添加一些屬性和方法,這樣,即使一個業務類原本沒有實作某個介面,通過AOP的引介功能,我們可以動態地為該業務類添加介面的實作邏輯,讓業務類成為這個介面的實作類, 6)織入(Weaving) 織入是將增強添加對目標類具體連接點上的程序,AOP像一臺織布機,將目標類、增強或引介通過AOP這臺織布機天衣無縫地編織到一起,根據不同的實作技術,AOP有三種織入的方式: a、編譯期織入,這要求使用特殊的Java編譯器, b、類裝載期織入,這要求使用特殊的類裝載器, c、動態代理織入,在運行期為目標類添加增強生成子類的方式, Spring采用動態代理織入,而AspectJ采用編譯期織入和類裝載期織入, 7)代理(Proxy) 一個類被AOP織入增強后,就產出了一個結果類,它是融合了原類和增強邏輯的代理類,根據不同的代理方式,代理類既可能是和原類具有相同介面的類,也可能就是原類的子類,所以我們可以采用呼叫原類相同的方式呼叫代理類, 8)切面(Aspect) 切面由切點和增強(引介)組成,它既包括了橫切邏輯的定義,也包括了連接點的定義,Spring AOP就是負責實施切面的框架,它將切面所定義的橫切邏輯織入到切面所指定的連接點中,本文來自博客園,作者:{BearBrick0},轉載請注明原文鏈接:{https://www.cnblogs.com/bearbrick}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/403558.html
標籤:其他
下一篇:DOTween實作緩動變值動效
