AspectJ - 无法注册非方面错误

AspectJ - Cannot register non aspect error

我正在尝试使用 AspectJ 和 运行 时间编织。 我创建了一个方面

  @Aspect(value = "TraceAspect")
public class TraceAspect {
   @Around("execution(* *(..))")
   public Object around(ProceedingJoinPoint invocation) throws Throwable{

     System.out.println(String.format("Invocing %s", invocation.getSignature().getName()));
     try {
      Object ret = invocation.proceed();
      System.out.println(String.format("Done Invocing %s", invocation.getSignature().getName()));
      return ret;
     } catch (Throwable throwable) {
       throw throwable;

     }

   }
}

我的 aop.xml 文件是

<aspectj>
<aspects>
    <aspect name="TraceAscpect"></aspect>
</aspects>
<weaver options="-debug -showWeaveInfo"/>

但是当我 运行 程序出现异常时 -

 java.lang.RuntimeException: Cannot register non aspect: TraceAscpect , TraceAscpect

我忘记添加了什么?

看来您在 XML 定义中拼错了方面的名称,应该是 TraceAspect 而您输入的是 TraceAscpect.

正如 Andy 所指出的,更正 XML 文件中的拼写错误。我也有同样的例外。后来我意识到我的切面不在 CLASSPATH 上。这为我解决了这个问题。确保 TraceAspect 在您的 CLASSPATH 中。