为什么服务器抱怨aspectOf缺什么?(Why server complaining about

2019-09-24 05:04发布

目前我正在试图AspectJ中注入的Spring bean如下所示的代码,总之我的服务器(WAS Liberty配置文件)不停地抱怨方法aspectOf丢失。 我想知道我怎么能解决这个问题?

应用程序的context.xml

<aop:aspectj-autoproxy/>
<import resource="/context-file-A.xml"/>

上下文文件A.XML

<bean id="loggingAspect" class="com.huahsin.LoggingAspect" factory-method="aspectOf">

JAVA代码

@Aspect
public class LoggingAspect {
   ...
}

Answer 1:

连接最多方面类时,这是一个常见的错误。 这意味着您的方面的类,在这种情况下LoggingAspect还没有被转换成可应用于一个方面。

2种方法来编织类成一个方面是使用AJDT Eclipse插件或Maven的AspectJ编译器插件 。

有3种方式来编织方面:

  • 编译时编织 :编译或者目标源或经由专用AspectJ编译方面类;
  • 后编编织 :注入方面说明已编译的类(可应用于JAR文件)
  • 装载时织 :类加载期间注入方面指令到字节码,即负载仪表类,而不是“原始”的一个;

前一个方面类可以应用于一类首先需要是“编织”进一个方面。

一个编织方面类将具有这些静态方法添加。



Answer 2:

AspectJ的需要编织两个 - 你的切面类和目标类。

编织你的切面类

  • 一方面级将获得aspectOf()和hasAspect()方法注入。

织目标类

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


Answer 3:

问题是,你的AspectJ的编织工艺是行不通的。 所以,我们在调用aspectOf一个普通的Java类方法,而不是一个AspectJ类。

一个简单的方法来测试这一点:

  1. 与像Eclipse插件的工具编织AJDT
  2. 创建和春天有个简单的JUnit测试。
  3. 最后,让在里面工作了。


文章来源: Why server complaining about aspectOf is missing?