在軟體開發中,分布於應用中多處的功能被稱為橫切關注點。通常,這些橫切關注點從概念上是與應用的
業務邏輯相分離的(但是往往直接嵌入到應用的業務邏輯之中)。將這些橫切關注點與業務邏輯相分離正是
面向切面程式設計(aop)所要解決的。
基於切面進行宣告式程式設計。
aop使這些服務模組化,並以宣告的方式將它們應用到它們需要影響的元件中去。aop確保pojo保持簡單。
在使用面向切面程式設計時,我們仍然在乙個地方定義通用功能,但是我們可以通過宣告的方式定義這個功能以何種方式在
何處應用,而無需修改受影響的類。
橫切關注點可以被模組化為特殊的類,這些類被稱為切面。這樣做有兩個
好處:首先,每個關注點現在都只集中於一處,而不是分散到多處**中;其次,服務模組更簡潔,因為它們
只包含主要關注點(或核心功能)的**,而次要關注點的**被轉移到切面中了。
繼承與委託是最常見的實現重用通用功能的物件導向技術。切面提供了取代繼承和委託的另一種選擇。
切面的工作被稱為通知。
連線點是在應用執行過程中能夠插入切面的乙個點。這個點可以是呼叫方法時、丟擲異常時、甚至修改乙個欄位時。切面**
可以利用這些點插入到應用的正常流程之中,並新增新的行為。
切點有助於縮小切面所通知連線點的範圍。
切面是通知和切點的結合。通知和切點共同定義了關於切面的全部內容——它是什麼,在何時和何處完成其功能。
前3中都是spring基於**的aop變體,因此,spring對aop的支援侷限於方法攔截。
建立切點來定義切面織入的連線點是aop框架的基本功能。因為spring基於動態**,所以spring只支援方法連線點。
spring的目標之一就是允許開發人員在開發應用程式時,能夠遵循物件導向(oo)原則中的「針對介面程式設計」。
spring security從兩個角度來解決安全性問題。它使用servlet過濾器保護web請求並限制url級別的訪問,
也可以使用spring aop保護方法呼叫——借助於物件**和使用通知,能夠確保只有具備適當許可權的使用者才能
訪問安全保護的方法。
spring在執行期通知物件。
切點和通知是切面的最基本元素。
《Spring實戰》AOP術語
aop 面向切面程式設計 常用術語 通知 advice 切點 pointcut 連線點 join point 通知 advice 在aop術語中,切面的工作被稱為通知。spring切面可以應用的5種型別的通知 連線點 join point 程式應用中可能有數以千計的時機應用通知,這些時機被稱為連線點...
Spring 3 x 企業應用實戰 AOP基礎
aop aop是oop的有益補充,他為程式開發提供了乙個嶄新的思考角度,可以將重複性的橫切邏輯抽取到統一的模組中,通過oop的縱向抽象和aop的橫向抽取,程式才能真正解決複雜性 問題。spring採用jdk動態 和cglib動態 的技術在執行期間植入增強,所以我們不需要裝備特殊的編譯器或者類裝載器就...
Spring基礎 AOP使用XML實戰
github 工程 aop是什麼,有哪些概念?參考 spring使用註解aop實戰 在進行xml配置aop之前,需要了解spring的aop命名空間中,提供了多少個元素用來在xml中宣告切面。這些配置在以下xml中體會。建立乙個切面,該切面沒有任何的註解。package com.jpeony.spr...