为什么服务器抱怨aspectOf丢失?

我正在尝试在AspectJ中注入Spring bean,就像下面显示的代码一样,无论如何我的服务器(WAS Liberty Profile)一直在抱怨方法aspectOf缺失。 我可以知道如何解决这个问题?

应用程序的context.xml

  

上下文文件A.XML

  

JAVA代码

 @Aspect public class LoggingAspect { ... } 

在连接方面类时,这是一个常见错误。 这意味着您的方面类(在本例中为LoggingAspect )尚未转换为可应用的方面。

将类编织成方面的两种方法是使用AJDT Eclipse插件或Maven AspectJ编译器插件 。

编织方面有三种方法:

  • 编译时编织 :通过专用的aspectj编译器编译目标源或方面类;
  • 编译后编织 :向已编译的类注入方面指令(可应用于JAR文件)
  • 加载时编织 :在类加载期间向字节代码注入方面指令,即加载已检测的类而不是“原始”类;

在将一个方面类应用于类之前,首先需要将其“编织”到一个方面。

编织的方面类将添加这些静态方法 。

AspectJ需要编织 – 方面类和目标类。

编织你的方面课程

  • aspect类将注入aspectOf()和hasAspect()方法 。

编织目标类

  • 添加对这些方法的调用。

问题是你的AspectJ编织过程不起作用。 所以你在普通的Java类而不是AspectJ类上调用aspectOf方法。

一种简单的测试方法:

  1. 使用Eclipse插件AJDT等工具编织
  2. 使用Spring创建一个简单的JUnit测试。
  3. 最后让它在WAS中运行。