Spring的AOP簡單使用

2021-08-20 21:15:06 字數 1292 閱讀 8449

強烈推薦乙個大神的人工智慧的教程:

相關概念

1.連線點(joinpoint):類裡面哪些方法可以被增強,這些方法稱為連線點

2.切入點:在類裡可以有很多的方法被增強,實際增強的方法稱為切入點

3.通知/增強:增強的邏輯,稱為增強

4.切面(aspect):增強具體方法的過程稱為切面(把增強用到切入點的過程)

表示式配置切入點

execution(《訪問修飾符》?《返回型別》《方法名》(《引數》《異常》)

以上表示式中的訪問修飾符和返回型別,方法名都可使用*表示,其中需要注意的地方是訪問修飾符和返回型別之間必須有乙個空格。

execution(* zh.spring.aop.book.*(..))
aop原理

在原有方法上增強,底層使用jdk動態**和cglib動態**。使原有方法不需要改變,一樣可以達到橫向的擴充套件,使用jdk動態**,是針對有介面的情況,建立介面實現類**物件,使用cglib動態**是針對沒有介面的情況,建立被增強類的子類**物件,在子類裡呼叫父類的方法完成增強。具體實現另寫一篇部落格記錄。

aop的使用

使用aop需要依賴aop的jar包,其中包括:

建立被增強的類book:

public class book 

}

建立aop增強類mybook:

public class mybook 

public void after1()

public void around1(proceedingjoinpoint proceedingjoinpoint) throws throwable

}

在resource下建立spring-aop.xml配置檔案,分別配置前置,後置和環繞通知:

<?xml version="1.0" encoding="utf-8"?>

寫測試類,測試結果:

public class testaop 

}

執行結果如下:

前置增強...

方法之前...

add......

方法之後...

後置增強...

四個處理器的優先順序

四個處理器的優先等級如下(從低到高),最高優先等級的最後織入:

before-->around-->afterreturning-->after

Spring中的AOP簡單使用

目錄結構 介面及實現類 public inte ce adminservice public inte ce customerservice service public class adminserviceimpl implements adminservice override public v...

spring的aop的使用

使用 aspect標籤標註的類就是乙個切面類 aspect comment public class calculatorloggingaspect before標識這個方法是個前置通知,切點表示式表示執行arithmeticacalculator藉口的add 方法。execution com.sp...

關於spring的AOP使用

目前專案中用的比較多的是 aspectj註解的切面和xml配置的aop 表述 最近這個專案用的是xml配置的aop 配置乙個跟節點,下面配置乙個advisor或者aspect,裡面再配置乙個pointcut的正則表示執行的地點和advice什麼時候執行什麼事。概念陳述 1.通知 advice 定義了...