我想通過一個LTW aop.xml文件來定義一個繼承的具體方面,但似乎沒有什麼 發生。AspectJ與aop.xml
這裏是我的代碼:
我的主要方法:
package example;
public class Farm {
static Cat cat = new Cat();
static Cow cow = new Cow();
static Dog dog = new Dog();
static Fox fox = new Fox();
public static void main(String args[]){
System.out.println(cat.talk(1));
System.out.println(dog.talk(1));
System.out.println(cow.talk(1));
System.out.println(fox.talk(1));
}
}
福克斯CALSS:
package example;
public class Fox extends Animal{
public String talk(int i) {
return "DING DING!!!";
}
}
我的抽象方面:
package example;
public abstract aspect MyAspect {
protected abstract pointcut scope();
before() : scope() {
System.out.println("Before");
}
}
我aop.xml文件文件:
<aspectj>
<aspects>
<aspect name="example.MyAspect"/>
<concrete-aspect
name="example.MyConcreteAspect"
extends="example.MyAspect"
>
<pointcut
name="scope"
expression="execution(public String example.Fox.talk(int))"
/>
</concrete-aspect>
</aspects>
</aspectj>
最後,我的輸出:
MEW
WOOF
MOO
DING DING!!!
隨着前沒有 「之前」 印 「叮叮!」
任何想法我做錯了什麼? 我已經下載了一個工作示例,並且似乎在我的計算機上配置爲 ...
你(如果有的話)是如何配置LTW?運行JVM/webserver時需要指定一個特殊的類加載器(代理)。 –