问题标签 [pointcut]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
860 浏览

parameters - 用于拦截带注释的参数调用/使用的 AspectJ/Java 工具

我想知道当使用 param1 时如何调用 doMonitorization 方法(参数定义并在 TestClassGeneralMeasuraments 类的方法上使用)具有正确的注释,该注释具有拦截 AspectJ 定义,如下面的代码所示。

////////////////////////////////////////

////////////////////////////////////////

0 投票
1 回答
1121 浏览

java - aspectj 切入点和建议在构造实例后的单个调用

基于我自己的实验和这里的文档:http: //www.eclipse.org/aspectj/doc/released/faq.html#q :initializationjoinpoints

这个:

将导致:

我正在尝试基于切入点创建建议,以便在实例完全构造后对实例执行操作,无论它是 Super 类型还是 Test 类型。

我试过这个:

但是在创建 Test 实例时它会被调用两次。在 Super 初始化后一次,然后在 Test 初始化后再次。

我试过这个:

它也被调用了两次,创建了一个 Test 实例,与上面相同。

最后,我试过这个:

效果很好,因为它只被调用一次,但我不能在它上面使用 target() 来获取对新创建实例的引用,就像这里描述的那样。

有什么办法可以和上一次同时执行,而且还能获取到实例的引用吗?或者有没有办法判断方面是否会再次触发,以便我可以等到最后一次?

谢谢。

更新: 我还需要它来处理反射,因为我正在序列化和反序列化与 json 之间的类,并希望确保代码在反序列化期间的构造之后得到适当的执行。

0 投票
1 回答
314 浏览

java - 使用 AspectJ 公开上下文

我知道我可以检索发送给方法的参数,但我如何才能获得在该方法中定义的对象?例如,这是我的课:

这是我的方面:

输出由参数组成,因为我写了&& args(m). 我如何从 sendMessage 中获取另一个字符串 x?

0 投票
2 回答
18547 浏览

java - 构造函数对象上的 AspectJ 切入点

我需要使用 AspectJ 为每个初始化的对象注入一些方法。

我想用这个:

对象的切入点初始化,因此我可以将这些方法直接注入到作为其他所有对象的一部分的对象中。

但是,它不起作用。你知道为什么吗?或者有什么其他方法可以 100% 确保每个初始化的对象都是切入点?*.new 不适用于字符串、列表等。

谢谢!

0 投票
1 回答
966 浏览

java - Aspectj 声明错误无法正常工作

我正在尝试捕获方法签名更改并在发生错误时引发错误。但是声明错误没有按预期工作

这始终与对此方法的调用相匹配。

但是如果我将此切入点移动到@Before,那么除非方法签名已更改,否则它将不匹配。

关于为什么 @DeclareError 和 @Before 之间关于切入点的不同行为的任何想法?

谢谢

0 投票
1 回答
532 浏览

eclipse - 无论参数列表如何,Spring @AspectJ @Pointcut 都会匹配

如何编写一个 Spring @AspectJ 切入点 ( @Pointcut) 表达式来匹配一个类中的所有公共方法,而不管它们的参数列表如何?

我想要一个对具有特定注释的特定类的所有@AfterThrowing公共方法都有切入点的方面(类似于其他人在之前的 SO 问题中想要的)。目前我的方面是这样的:@MyAnnotation

Eclipse Spring 插件指示(使用源代码窗口中的箭头注释)这是正确的建议方法com.example.Service.getNames()。但这并不表示com.example.Service.getTimes(String name)已建议具有参数的方法,例如 。

那是因为带有@Pointcut注释的方法没有参数吗?我怎样才能使切入点成为所有方法,而不管它们的参数列表如何?或者我必须为班级@Pointcut中的每种参数列表单独设置一个?com.example.Service

0 投票
1 回答
1007 浏览

java - 切入点表达式不适用于自定义注释

我有以下自定义注释

实现

方面

我已经一一尝试了上述切入点。但是当石英调用该方法时,AOP 不起作用。有人可以帮忙吗。

0 投票
1 回答
406 浏览

java - Pointcut实现中获取方法参数实例

我有一个要求是从切入点实现中获取截获的方法的参数值,如下所示。

截取方法:

并在方面实施

是否可以在 afterThrowing 方法中获取“mapValues”参数的实例。有人可以说明一下吗。

0 投票
1 回答
1743 浏览

java - 从 LTW 的属性文件中读取 Aspectj 切入点定义

我在我的 guice 应用程序中使用 aspectj LTW,我正在尝试为从配置文件控制的方面进行切入点定义。例如:

我有什么可能的选择?

谢谢

0 投票
1 回答
3499 浏览

java - Aspectj:切入点在 aop.xml (LTW) 中声明时不再起作用

我试图将我的方面定义为一个具体方面,以便能够在 aop.xml 中定义切入点而无需编译代码。我正在使用 LTW。

当我在切面类本身中定义我的切入点 exp 并将切面定义为一个简单的切面 ( ) 时,它可以正常工作。但是,当我将方面声明为具体方面并在 aop.xml 中定义切入点时。该方面不再起作用......并且它不再达到我建议中的断点......

这是有/没有具体方面的代码:

没有具体方面(工作正常):

和 aop.xml

具体方面(不起作用)

aop.xml

我正在使用 aspectj 1.6 罐子。

当我不使用具体方面时,以下日志

当我使用具体方面时,我看到以下日志:

日志上没有显示错误,看起来具体方面没有注册。

请指教。