什麼是aop
aop為aspect oriented programming的縮寫,意為:
面向切面程式設計
,通過預編譯
方式和執行期動態**實現程式功能的統一維護的一種技術。aop是
oop的延續,是軟體開發中的乙個熱點,也是
spring
框架中的乙個重要內容,是
函式式程式設計
的一種衍生范型。利用aop可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的
耦合度降低,提高程式的可重用性,同時提高了開發的效率。
日誌記錄,效能統計,安全控制,事務處理,
異常處理
等等。aop 的好處
aop採取橫向抽取機制,取代了傳統縱向繼承體系重複性**
* 傳統方式,復用**,繼承、擴充套件**、方法覆蓋
* 將復用**抽取出來,通過**機制,將抽取** 應用到目標物件
* aop針對目標類 的方法 進行動態**,對原有方法 進行攔截增強
aop開發中術語
所謂連線點是指那些被攔截到的點(可以被攔截**的方法)。在spring中,這些點指的是方法,因為spring只支援方法型別的連線點,
所謂切入點是指我們要對那些joinpoint進行攔截的定義,上面說的連線點的基礎上,來定義切入點,你的乙個類裡,有15個方法,那就有幾十個連線點了對把,但是你並不想在所有方法附近 都使用通知(使用叫織入,以後再說),你只想讓其中的幾個,在呼叫這幾個方法之前,之後或者丟擲異常時乾點什麼,那麼就用切點來定義這幾個方法,讓切點來篩選連線點,選中那幾個你想要的方法。
所謂通知是指攔截到joinpoint之後所要做的事情就是通知,通知分為前置通知,後置通知,異常通知,最終通知,環繞通知(切面要完成的功能)
切面是通知和切入點的結合。現在發現了吧,沒連線點什麼事情,連線點就是為了讓你好理解切點,搞出來的,明白這個概念就行了。通知說明了幹什麼和什麼時候幹(什麼時候通過方法名中的before,after,around等就能知道),而切入點說明了在哪幹(指定到底是哪個方法),這就是乙個完整的切面定義。
引介是一中特殊的通知在不修改類**的前提下,introduction可以在執行期為類動態地新增一些方法或field。 引入中所提到的目標類,也就是要被通知的物件,也就是真正的業務邏輯,他可以在毫不知情的情況下,被咱們織入切面。而自己專注於業務本身的邏輯。
**的目標物件, 引入中所提到的目標類,也就是要被通知的物件,也就是真正的業務邏輯,他可以在毫不知情的情況下,被咱們織入切面。而自己專注於業務本身的邏輯。
乙個類被aop織入增強後,就產生乙個結果集**類
是指把增強應用到目標物件來建立新的**物件的過程。
spring採用動態**織入,而aspectj採用編譯期織入和類裝載期織入
spring aop的底層實現原理:動態**
參考:aop那些學術概念—通知、增強處理連線點(joinpoint)切面(aspect)
Spring aop術語概述
一 aop 即 aspect oriebted programming 的縮寫。意思是面向切面 方面 程式設計。二 定義aop術語 a 切面 需要實現的交叉功能。b 連線點 應用程式執行過程中插入切面的地點 此處可以是方法呼叫 異常丟擲甚至是修改的字段。c 通知 通知切面的實際實現。他通知應用系統新...
Spring AOP 常用術語說明
就是你想要的功能,也就是上面說的 安全,事物,日誌等。你給先定義好把,然後在想用的地方用一下。這個更好解釋了,就是spring允許你使用通知的地方,那可真就多了,基本每個方法的前,後 兩者都有也行 或丟擲異常時都可以是連線點,spring只支援方法連線點.其他如aspectj還可以讓你在構造器或屬性...
oracle基本術語
1 資料字典 由一系列擁有資料庫元資料資訊的資料字典表和使用者可以讀取的資料字典試圖組成,存放oracle資料庫所用的有關資訊。2 資料檔案 包含全部資料庫資料。乙個資料庫可以有多個資料檔案。乙個表空間可以有多個資料檔案。資料檔案的大小可以用兩種方式表示,位元組和資料塊。資料塊是oracle資料庫中...