- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道以下内容在切入点中意味着什么
after(FigureElement fe, int x, int y) returning:
call(void FigureElement.setXY(int, int))
&& target(fe)
&& args(x, y) {
System.out.println(fe + " moved to (" + x + ", " + y + ")");
}
这里的target和args是什么意思?我不知道。
非常感谢
最佳答案
让我们看看 AspectJ guide .
target(Type or Id) every join point when the target executing object is an instance of Type or Id's type
args(Type or Id, ...) every join point when the arguments are instances of Types or the types of the Ids
在您的示例中,为了匹配切入点,必须在 FigureElement
实例上调用该方法并具有两个 int
参数。作为 target
和 args
参数给出的名称意味着这些参数可以在您的建议正文中访问。
因此,您的切入点将使用两个 int
参数来匹配对 FigureElement.setXY
方法的所有调用,并允许您以 fe
的形式访问匹配的实例方法参数为 x
和 y
。
关于java - 面向方面的问题——切入点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4675375/
我正在使用 aspectj 来拦截用 @Profile(description="something") 注释的方法 @Retention(RetentionPolicy.RUNTIME) @Targ
我对 Spring AOP 中的所有类都有一个切入点,例如 @Pointcut("执行(* com.company.app..*(..))") 现在我需要排除一个类 com.company.app.I
我对 Spring AOP 中的所有类都有一个切入点,例如 @Pointcut("执行(* com.company.app..*(..))") 现在我需要排除一个类 com.company.app.I
我想知道以下内容在切入点中意味着什么 after(FigureElement fe, int x, int y) returning: call(void FigureElement.
在开始之前,我想澄清一下,我目前对 AOP 术语的理解如下...... 方面是 AOP 等同于 OOP 中的类。 通知是 AOP 等价于 OOP 中的方法。 切入点是 AOP 等价于 OOP 中的“使
我将参与 android 设备驱动程序的开发。在准备过程中,我想掌握基础知识并为此提高我的技能。 过去 2 年我一直在使用 VB 和 JAVA,所以我对自己的 C 编程没有信心。 Linux 设备驱动
我想记录类列表(可能属于不同的包)中所有方法的条目。请注意,这些方法应该只属于指定的类。 我试过以下方法,但这些都不起作用 (1) 使用 if() 切入点这里报错 "incompatible numb
我正在使用 @AspectJ 样式来编写方面,以处理我们应用程序中的日志记录。基本上我有一个像这样设置的切入点: @Pointcut("call(public * com.example..*(..)
例如我有以下方法: public void method1(@MyAnnotation Object a, Object b..) { ... } public void method1(Obj
我正在寻找一种围绕类级别变量指定切入点的方法。像这样的东西: @Target(ElementType.METHOD) @Retention(RetentionPolicy.FIELD) @interf
如何编写一个切入点来触发方法,例如MyClass 上的所有 setter 都被执行,但该方法缺少一些特定的注释,例如@Ann1 和 @Ann2 最佳答案 import java.lang.annota
我在让各个方面正常工作时遇到一些问题。由于某种原因,它们似乎只有在我真正了解该方面的应用位置时才起作用。在四个切入点/建议中,只有最后一个匹配并输出任何内容。我在这里缺少什么? public aspe
我是 Spring AOP 触发器的新手。我的代码中有以下切入点触发器。当定义了所有四个切入点时,只有第一个切入点触发器 (com.src.a()) 正在工作,下面的其余切入点不会触发。但是当我在四个
使用加载时编织,纯 AspectJ。 我们有 2 个注释 @Time 和 @Count,以及一些带注释的方法。 @Time (name="myMethod1Time") @Count (name="m
这个问题已经有答案了: Java Aspect returned value to be used in the method (1 个回答) 已关闭 6 年前。 我想要 AOP 记录方法的返回值
我正在尝试围绕使用自定义注释注释的方法定义切入点。注释有一个参数,我想在切入点定义中包含一个检查。 这是注释: public @interface MyAnno { String[] types;
我正在使用 Spring AOP 进行日志记录。我想创建一个适用于除具有特定注释的方法之外的所有方法的切入点,但我不知道如何去做。我所发现的只是如何包含带有注释的方法。 最佳答案 示例注释: pack
/* 0 */ pointcut services(Server s): target(s) && call(public * *(..)) This pointcut, named services
我需要使用 AspectJ 向每个初始化对象注入(inject)一些方法。 我想用这个: pointcut vistaInjection(Object o) : initialization(
假设我有这样的方法: public void method(@CustomAnnotation("value") String argument) 是否有一个切入点表达式可以选择所有带有 @Custo
我是一名优秀的程序员,十分优秀!