我创建了自定义注释@myAnn
。我将用它来注释方法参数。
我在这里找到了一些示例代码,展示了如何创建针对自定义注释的切入点。
所以现在,我创建了一个带切入点的方面。但是我不知道如何获得用myAnn
注释的参数值。
@Aspect
public class MyAnnAspect {
@Around("execution(@my.package.test.MyAnn") // I hope this pointcut will work
public void changeParameter(final ProceedingJoinPoint pjp) throws Throwable {
// How I can there get parameter value (and chage it)?
}
}
我认为切入点不起作用,因为它不是注释的方法,可以这样做:
MethodSignature ms = (MethodSignature) pjp.getSignature();
Method m = ms.getMethod();
Annotation[][] pa = m.getParameterAnnotations();
现在您可以遍历注释,并找到正确的注释,如果存在,则通过调用pjp.getargs()
获取参数值。
在执行通知时,如何获取的和?我正在使用Spring 4.0.6、AspectJ 1.7.4
所以目前,这是我所做的(不起作用): 这是与建议匹配的代码: 以及由junit测试生成的跟踪:
我有一个方面,处理所有有自定义注释的方法。 注释有一个枚举参数,我必须在方面中获得值: 有没有办法从ProcedingJoinPoint获得实现方法的签名?
我试图截取带注释方法的执行,以记录执行时间;因此,我创建了一个新注释: 我将注释应用于我想要跟踪的方法(该方法的类没有注释,如@Service或@Component;这是一个问题吗?) 然后我创建类和@周围方法: 我在pom中添加了spring boot starter aop依赖项,并在主类中添加了@EnableSpectProxy(带@SpringBootApplication注释的类)。我希
我试图让aspectj拦截带注释的方法: 我删除了!为了简洁起见,在(InterceptMeAspect)内,但它并没有拦截太多。如果我删除注释约束(在(@InterceptMe*)内),它可以工作,但会拦截所有内容,这会造成一个大问题。 输出字节码似乎有完整的注释,所以我希望注释标准匹配。我正在或试图进行编译时编织。这很重要,因为我有另一个方面确实使用上面相同的方法工作。我怀疑该方面正在搞乱这个
我有一个可用于注释的方面: 连接点: 我可以在具有