切面類型
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中無相應概念;