Spring aop 註解參數說明
阿新 • • 發佈:2017-11-01
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 註解參數說明