亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Spring AOP

Aspect Oriented Programming(AOP)從某種意義上說是對OOP的補充,因為它還提供了模塊化的功能。但是模塊化的關鍵單元是方面而不是類。

AOP將程序邏輯分為不同的部分(稱為關注點)。它用于通過 跨領域關注點來提高模塊化。

cross-cutting concerns是一個會影響整個應用程序的關注點,應該盡可能集中在一個位置的代碼中,例如事務管理,身份驗證,日志記錄,安全性等。


為什么使用AOP?

它提供了一種可插拔的方式,可以在實際邏輯之前,之后或周圍動態(tài)添加附加關注點。假設一個類中有10個方法,如下所示:

class A{
public void m1(){...}
public void m2(){...}
public void m3(){...}
public void m4(){...}
public void m5(){...}
public void n1(){...}
public void n2(){...}
public void p1(){...}
public void p2(){...}
public void p3(){...}
}

從m開始有5種方法,從n開始有2種方法,從p開始有3種方法。

了解情況我必須維護日志并發(fā)送

沒有AOP的問題我們可以從m開頭的方法中調用方法(維護日志并發(fā)送通知)。在這種情況下,我們需要使用所有5種方法編寫代碼。

但是,如果客戶以后說,我不必發(fā)送通知,則需要更改所有方法。這會導致維護問題。

AOP解決方案我們不必從方法中調用方法?,F在,我們可以在類的方法中定義其他關注點,例如維護日志,發(fā)送通知等。它的條目在xml文件中給出。

將來,如果客戶說要刪除通知程序功能,我們只需要在xml文件中進行更改。因此,在AOP中維護很容易。

在哪里使用AOP?

在以下情況下主要使用AOP:

提供聲明式企業(yè)服務,例如聲明式事務管理。 它允許用戶實現自定義aspects。

AOP概念和術語

AOP概念和術語如下:

Join point Advice Pointcut Introduction Target Object Aspect Interceptor AOP Proxy Weaving

Join point

Join point是程序中的任何點,例如方法執(zhí)行,異常處理,字段訪問等。Spring僅支持方法執(zhí)行Join point。

Advice

Advice表示方面在特定的Join point處采取的操作。有不同類型的Advice:

Before Advice: 它在Join point之前執(zhí)行。 After Returning Advice: 在聯合點正常完成后執(zhí)行。 After Throwing Advice: 如果方法因引發(fā)異常而退出,則執(zhí)行。 After (finally) Advice: 無論Join point退出是正常返回還是異常返回,它都會在Join point之后執(zhí)行。 Around Advice: 它在Join point之前和之后執(zhí)行。

Pointcut

它是AOP的一種表達語言,它與Join point相匹配。

Introduction

這意味著引入類型的其他方法和字段。它允許您向任何建議對象引入新的界面。

Target Object

這是一個或多個方面建議的對象。在Spring,它也被稱為代理對象,因為Spring AOP是使用運行時代理實現的。

Aspect

這是一個包含建議,Join point等的類。

Interceptor

這是一個僅包含一個建議的方面。

AOP Proxy

它用于實現由AOP框架創(chuàng)建的方面合同。在Spring框架中它將是JDK動態(tài)代理或CGLIB代理。

Weaving

這是將方面與其他應用程序類型或對象鏈接在一起以創(chuàng)建建議對象的過程。編織可以在編譯時,加載時或運行時完成。 Spring AOP在運行時執(zhí)行編織。

AOP實現

AOP實現由以下提供:

AspectJ SpringAOP JBoss AOP

Spring AOP

Spring AOP可以通過以下三種方式使用。但是廣泛使用的方法是Spring AspectJ注釋樣式。下面給出了使用Spring AOP的3種方法:

采用Spring1.2舊樣式(基于dtd)(在Spring3中也受支持) 通過AspectJ注釋樣式 通過Spring XML配置樣式(基于模式)