1. 程式人生 > >Spring aop 註解參數說明

Spring aop 註解參數說明

spring 連接 href 僅支持 blank code exec data aspectj

在spring AOP中,需要使用AspectJ的切點表達式語言來定義切點。
關於Spring AOP的AspectJ切點,最重要的一點是Spring僅支持AspectJ切點指示器(pointcut designator)的一個子集。

AspectJ指示器 描述

arg() 限制連接點匹配參數為指定類型的執行方法
@arg() 限制連接點匹配參數由指定註解標註的執行方法
execution() 用於匹配是連接點的執行方法
this() 限制連接點匹配AOP代理的Bean引用為指定類型的類
target() 限制連接點匹配目標對象為指定類型的類
@target() 限制連接點匹配特定的執行對象,這些對象對應的類要具備指定類型的註解
within() 限制連接點匹配指定的類型
@within() 限制連接點匹配指定註解所標註的類型
@annotation 限制匹配帶有指定註解連接點

只有execution指示器是唯一的執行匹配,而其他的指示器都是用於限制匹配的。這說明execution指示器是我們在編寫切點定義時最主要使用的指示器。在此基礎上,我們使用其他指示器來限制所匹配的切點。
1.編寫切點
技術分享
當Instrument的play()方法執行時會觸發通知。
技術分享
配置切點僅匹配com.springinaction.springidol包。
我們使用了&&操作符把execution()和within()指示器連接在一起形成and關系(切點必須匹配所有的指示器)。類似的我們可以使用||操作符來標識or關系,而使用!操作符來標識非操作。
2.使用Spring的bean()指示器
bean()使用Bean ID或Bean名稱作為參數來限制切點只匹配特定的Bean。
execution(* com.springinaction.springidol.Instrument.play() and bean(eddie))

Spring aop 註解參數說明