Spring 与此类型名称不匹配

Spring 与此类型名称不匹配,spring,aop,spring-aop,aspect,Spring,Aop,Spring Aop,Aspect,我在com.aop.aspect包中有许多aspect类。我想做的是处理所有类,除了一个名为com.aop.dao.MyDemoLoggingAspect 当我运行应用程序时,控制台上出现了一个错误 java.lang.IllegalArgumentException: warning no match for this type name: com.aop.dao.MyDemoLoggingAspect [Xlint:invalidAbsoluteTypeName] 这是我的课程 @Aspe

我在
com.aop.aspect
包中有许多aspect类。我想做的是处理所有类,除了一个名为
com.aop.dao.MyDemoLoggingAspect

当我运行应用程序时,控制台上出现了一个错误

java.lang.IllegalArgumentException: warning no match for this type name: com.aop.dao.MyDemoLoggingAspect [Xlint:invalidAbsoluteTypeName]
这是我的课程

@Aspect
public class LuvAopExpressionsOrder {

    @Pointcut("execution(* com.aop.dao.*.*(..))")
    public void forDaoPackage() {}

    // create pointcut for getter methods
    @Pointcut("execution(* com.aop.dao.*.get*(..))")
    public void getter() {}

    // create pointcut for setter methods
    @Pointcut("execution(* com.aop.dao.*.set*(..))")
    public void setter() {}

    // create pointcut for setter methods
    @Pointcut("!execution(* com.aop.dao.MyDemoLoggingAspect.*(..))")
    public void excludeMyDemoLoggingAspect() {}

    // create pointcut: include package ... exclude getter/setter and MyDemoLoggingAspect
    @Pointcut("forDaoPackage() && !(getter() || setter()) && excludeMyDemoLoggingAspect() ")
    public void forDaoPackageNoGetterSetter() {}

}

如果您使用SpringAOP,您不必担心一个方面会截取另一个方面的方法,因为Spring不支持这一点,如第章中所述。向下滚动一点并查找此信息框:

向其他方面提供建议?

在SpringAOP中,方面本身不能成为其他方面建议的目标。类上的
@Aspect
注释将其标记为Aspect,因此将其从自动代理中排除

所以基本上你的问题不是问题

如果您使用的方式不受这些限制,因此必须小心排除由于匹配切入点而通常被拦截的其他方面。我建议将方面放在易于排除的包中,否则您必须按类名进行操作。根据您的情况,使用如下切入点:

!在(com.aop.dao.MyDemoLoggingAspect)内
!内(com.acme.aop.*)
!内(com.acme..*方面)