0
我按照教程學習Spring AOP。Spring中的「執行」AOP
在章Spring AOP capabilities and goals,它說:
Spring目前僅支持使用方法執行(1)連接點
但在章aop-pointcuts-designators,它支持下面的切入點表達式:
execution(2)
within
...
(1)和(2)兩種執行標記的不同含義是什麼?
我按照教程學習Spring AOP。Spring中的「執行」AOP
在章Spring AOP capabilities and goals,它說:
Spring目前僅支持使用方法執行(1)連接點
但在章aop-pointcuts-designators,它支持下面的切入點表達式:
execution(2)
within
...
(1)和(2)兩種執行標記的不同含義是什麼?
這句話意味着Spring只能攔截方法調用。 Aspect oriented programming通常具有更廣的範圍。 AOP連接點可以是任何一段代碼,方法調用,拋出異常,捕獲異常,變量賦值等。然而Spring的AOP受到Java語言及其特性的限制。因此,它只能處理方法調用連接點。繼續閱讀Spring如何使用代理實現AOP功能。
上面的報價與切入點的類型完全無關。
的execution
(2)是pointcut designator.
執行 - 匹配方法執行的連接點,這是Spring AOP的工作
當你將使用 主要切入點指示符事實上我知道執行(1)意味着什麼,還有其他類型的連接點,比如'field'等,spring只是支持'方法執行'。但令我困惑的是切入點表達式中的執行(2),這是什麼意思? – hguser
@hguser請參閱我的編輯。那是你需要的嗎? –
切入點指示符包含「execution,within,this ....」,因爲Spring只支持'execution',所以我不確定指定符'execution'是否有意義,並且在內部執行'execution'這個......'會使它看起來像'內部,這個......'不用於方法執行(但事實上,它們仍然只支持方法執行,不是嗎?) – hguser