gpt4 book ai didi

java - AspectJ 切入点匹配模式

转载 作者:行者123 更新时间:2023-12-02 02:54:57 24 4
gpt4 key购买 nike

我编写了一个切入点,它将在执行某个方法时调用周围建议。

但是,我想确切地了解为什么我使用的最终模式有效,但初始模式无效。

我使用的初始模式(不起作用)是:

pointcut timeIt() : execution(* *.AuthFilter.filter(..));

有效的模式是:

 pointcut timeIt() : execution(* *..*.AuthFilter.filter(..));

事实证明,尝试通过 Google 搜索 *.*..*. 之间的区别有些困难。如果有人可以提供解释或解释差异的资源,我将非常感激。

最佳答案

文档对此进行了解释:

AspectJ Type Patterns

An embedded * in an identifier matches any sequence of characters, but does not match the package (or inner-type) separator ".".

An embedded .. in an identifier matches any sequence of characters that starts and ends with the package (or inner-type) separator ".".

基本上,当在包级别使用时,.. 表示任何子包。

您的第一个表达式仅在 AuthFilter 位于第二级时匹配,例如 org.AuthFilter,但不会匹配 org.security.AuthFilter ,在这种情况下,您需要*.*.AuthFilter

您的第二个表达式无论在哪里都与 AuthFilter 匹配。它所在的包和子包并不重要。

@AspectJ cheat sheet

关于java - AspectJ 切入点匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43251293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com