古詩詞大全網 - 個性簽名 - spring aop切面表達式詳解及例子

spring aop切面表達式詳解及例子

切面類型

execution格式

通配符

例子

壹、 execution :使用“ execution (方法表達式)”匹配方法執行;

二、 within :使用“ within (類型表達式)”匹配指定類型內的方法執行;

三、 this :使用“ this (類型全限定名)”匹配當前AOP代理對象類型的執行方法;註意是AOP代理對象的類型匹配,這樣就可能包括引入接口方法也可以匹配;註意this中使用的表達式必須是類型全限定名,不支持通配符;

四、 target :使用“ target (類型全限定名)”匹配當前目標對象類型的執行方法;註意是目標對象的類型匹配,這樣就不包括引入接口也類型匹配;註意target中使用的表達式必須是類型全限定名,不支持通配符;

五、 args :使用“ args (參數類型列表)”匹配當前執行的方法傳入的參數為指定類型的執行方法;註意是匹配傳入的參數類型,不是匹配方法簽名的參數類型;參數類型列表中的參數必須是類型全限定名,通配符不支持;args屬於動態切入點,這種切入點開銷非常大,非特殊情況最好不要使用;

六、 @within :使用“ @within (註解類型)”匹配所以持有指定註解類型內的方法;註解類型也必須是全限定類型名;

七、 @target :使用“ @target (註解類型)”匹配當前目標對象類型的執行方法,其中目標對象持有指定的註解;註解類型也必須是全限定類型名;

八、 @args :使用“ @args (註解列表)”匹配當前執行的方法傳入的參數持有指定註解的執行;註解類型也必須是全限定類型名;

九、 @annotation :使用“ @annotation (註解類型)”匹配當前執行方法持有指定註解的方法;註解類型也必須是全限定類型名;

十、 bean :使用“ bean (Bean id或名字通配符)”匹配特定名稱的Bean對象的執行方法;Spring AOP擴展的,在AspectJ中無相應概念;