Aspectj ltw aop.xml

时间:2014-10-31 04:30:21

标签: java eclipse

我们如何使用aop.xml在普通的java代码中定义切入点?这是一个示例代码,我试图在aop.xml中定义切入点 - > 1)这是java类

package testAOP;

public class HelloWorld {

        public static void main(String[] args) {
            HelloWorld app = new HelloWorld();
            app.say("Hello world!");
            app.add(11, 22);
        }

        private int add(int i, int j) { return i + j; }
        public void say(String message) { System.out.println(message); }
}

2)我的方面类

package testAOP;

abstract aspect MyAspect {


    protected abstract pointcut publicMethod();

    Object around() : publicMethod() {
        System.out.println(thisJoinPointStaticPart);
        return proceed();
    }
}

3)在主项目目录文件夹中创建了META-INF文件夹,即在包testAOP-> META-INF中,它包含aop.xml

<?xml version="1.0" encoding="UTF-8"?>
<aspectj>
            <aspects>
        <concrete-aspect
            name="testAOP.ConcreteAspect"
            extends="testAOP.MyAspect"
        >
            <pointcut
                name="publicMethod"
                expression="execution(public * testAOP.HelloWorld.*(..))"
            />
        </concrete-aspect>
    </aspects>
            <weaver options="-verbose">
              <weaver options="-showWeaveInfo"/>
            </weaver>
</aspectj>

已将具有aop.xml的METAINF文件夹添加到java构建路径,并且在Aspectj加载时编织的运行配置中设置了以下属性:

  • 在Main标签Project-&gt; HelloWorldPlainJava,Main class-&gt; testAOP.HelloWorld
  • 在Arguments选项卡中VM参数 - &gt; -javaagent:&#34; D:\ Eclipse_fldr \ eclipse \ plugins \ org.aspectj.weaver_1.7.3.20130613144500-a.jar&#34;
  • 在用户条目的LTWclasspath选项卡中添加了HelloWorldPlainJava。

我错过了什么?为什么不承认切入点?

1 个答案:

答案 0 :(得分:0)

能够解决我的问题,bin文件夹中缺少aop.xml,并且版本与aspectjrt和aspect-weaver版本不匹配