Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringAOP-每个带有注释的方法的切入点_Java_Spring_Aop_Spring Aop_Pointcut - Fatal编程技术网

Java SpringAOP-每个带有注释的方法的切入点

Java SpringAOP-每个带有注释的方法的切入点,java,spring,aop,spring-aop,pointcut,Java,Spring,Aop,Spring Aop,Pointcut,我正在尝试定义一个切入点,它将捕获每一个用(@CatchThis注释的方法。这是我自己的注解 此外,我希望能够访问该方法的第一个参数,它将是Long类型。也许还有其他的争论,但我不在乎 编辑 这就是我现在拥有的。我不知道的是如何传递用@CatchThis注释的方法的第一个参数 @Aspect public class MyAspect { @Pointcut(value = "execution(public * *(..))") public void anyPublicM

我正在尝试定义一个切入点,它将捕获每一个用(
@CatchThis
注释的方法。这是我自己的注解

此外,我希望能够访问该方法的第一个参数,它将是
Long
类型。也许还有其他的争论,但我不在乎


编辑

这就是我现在拥有的。我不知道的是如何传递用
@CatchThis
注释的方法的第一个参数

@Aspect 
public class MyAspect {
    @Pointcut(value = "execution(public * *(..))")
    public void anyPublicMethod() {
    }

    @Around("anyPublicMethod() && @annotation(catchThis)")
    public Object logAction(ProceedingJoinPoint pjp, CatchThis catchThis) throws Throwable {
        return pjp.proceed();
    }
}

这样做应该可以:

@Aspect
public class MyAspect{

    @Pointcut(value="execution(public * *(..))")
    public void anyPublicMethod() {
    }

    @Around("anyPublicMethod() && @annotation(catchThis) && args(.., Long ,..)")
    public Object logAction(
        ProceedingJoinPoint pjp, CatchThis catchThis, Long long)
        throws Throwable {

        return pjp.proceed();
    }
}

我已经更新了我的帖子。你能对你的代码片段做同样的处理吗?我会非常感激的。谢谢。是否有可能捕获具有一个长参数的方法,该参数不一定是第一个参数-它可以是第一个、第二个。。还是最后一个?
原因:org.springframework.beans.factory.BeanCreationException:创建在类路径资源[beans.xml]中定义了名称为“piano”的bean时出错:bean初始化失败;嵌套异常是java.lang.IllegalArgumentException:error at::0 formal unbound in pointcut
这是我尝试使用您的方面时得到的结果。。我迷路了我从args(…)中删除了第一个…-当时的错误不同。我尝试了答案,我整个下午都在寻找答案,结果很简单。我很惊讶aspecj和spring的强大,我的Intellij想法也知道切入点通过静态代码分析是有效的。不幸的是,我可以在spring官方文档中找到这个特定问题的答案。这个切入点表达式是否也涵盖了不是spring管理的对象?也就是说,如果我在一个简单的POJO上使用@CatchThis注释,切入点表达式会对其求值吗?