2014-10-31 60 views
1

我们如何使用aop.xml在纯Java代码中定义切入点?这是在其中正在试图定义切入点一个示例代码aop.xml-> 1)这是java类Aspectj ltw aop.xml

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)已经创建在主项目目录文件夹的文件夹METAINF在包即testAOP-> METAINF它由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> 

有添加具有的METAINF文件夹的10到Java构建路径和用于AspectJ装载时编织的运行配置有设置以下属性:

  • 在主标签项目 - > HelloWorldPlainJava,主类 - > testAOP.HelloWorld
  • 在Arguments选项卡VM参数 - > --javaagent:“D:\ Eclipse_fldr \ eclipse \ plugins \ org.aspectj.weaver_1.7.3.20130613144500-a.jar”
  • 在用户条目的LTWclasspath选项卡中添加了HelloWorldPlainJava。

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

回答

0

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