我试图创建简单的AspectJ项目。我有两节课:
public class Server {
public static void main (String[] args) {
System.out.println("Hello World!");
testing();
}
public static void testing() {
System.out.println("Hello there");
}
}
@Aspect
public class AspectTest {
@Pointcut("execution(* *(..))")
public void all() {
}
@Before("all()")
public void executee(JoinPoint j1) {
System.out.println("Hey before!");
}
@After("all()")
public void executee2(JoinPoint j1) {
System.out.println("Hey After!");
}
}
但是简单的AspectTest
类不提供任何输出。控制台仅打印“ Hello World!”。和“ Hello there”,而AspectJ则指向每个包中的每个方法。
答案 0 :(得分:2)
该方面很可能没有被编译(使用ajc
)或被编织(使用aspectjweaver
代理)。您可以查看Chapter 5. Load-Time Weaving上的文档:
AspectJ 5随附了许多启用加载时编织的加载时编织代理。这些代理及其配置取决于执行环境。本章稍后将讨论支持的环境的配置。
使用Java 5 JVMTI,您可以为JVM指定-javaagent:pathto / aspectjweaver.jar选项。