aop

AOP全稱 aspect-priented programming 它是面向切面編程的思想核心java

AOp和OOP即面向對象的編程語言,不相沖突,他們是兩個相輔相成的實際模型express

Spring的同期並不依賴與AOP編程

AOP術語介紹編程語言

cross-cutting concern:系統層面上的服務穿插到業務邏輯的處理流程之中對象

aspect:當須要是,將其放到應用程序上,不須要是將其從應用程序總脫力出來接口

Advice:是Aspect具體的實現get

Joinpoint:aspect在應用程序執行時加入業務流程的時機io

Pointcut:指定某個aspect在那些joinpoint時被穿插至應用程序之上編譯

Target:一個advice被應用的對象或者目標對象jdk

Instruction:爲己編寫,編譯完成的類,在執行時期動態加入一些方法,而不用修改或者增長任何代碼

Weave:被應用對象之上的過程

Spring對AOP的支持

純java語言來編寫  定義pointcuts能夠使用配置文件   不支持屬性成員的jointpoints

Spring建立Adivice

Before Advice

目標對象的方法執行以前被調用

經過建立類實現methodBeforeAdvice接口來實現

目標對象的方法執行以後被調用

經過建立類實現methodAfterAdvice接口來實現

Aound Advice在執行以前和以後來執行響應的操做

要實現MethodInterceptor接口

ThorowAdvice

異常發生的時候,通知某個服務對象作處理

實現ThrowsAdvice

基於XMLSchema

簡化代碼實現

容易對應用程序進行維護

全部元素都定義在<aop:config>標籤元素中

<aop:config> 包含多個切面,切入點,advice等標籤元素

<aop:aspect>定義一個切面

<aop:pointcut>定義切入點的信息 

expression執行的表達式 *字符,表明匹配任意的返回類

():匹配了一個不接受任何參數的方法

(..):匹配了接受任意參數的方法

<aop:around>定義around advice

基於Annotation

以註解的方式對java的普通類進行標註

@AspectJ採用jdk5.0的註解技術

在配置文件中啓用AspectJ <aop:aspecrj-autoproxy/>

相關文章
相關標籤/搜索