在项目中,我们使用注释来定义方面。
不幸的是,我不能让eclipse在建议的方法旁边显示标记。
在另一个项目中,我们使用XML来定义方面,eclipse显示标记。
最好我发布一些代码来澄清:
首先要建议一个bean:
package aop.test;
import org.springframework.stereotype.Service;
@Service
public class Worker {
public void work() {}
}
然后是方面:
package aop.test;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Service;
@Aspect
@Service
public class WorkerLogger {
@Before("execution(void aop.test.Worker.work())")
public void log() {
System.out.println("working...");
}
}
最后是一个准备ApplicationContext的主方法,获取bean并运行建议的方法:
package aop.test;
import org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
public static void main(String[] args) {
AnnotationConfigApplicationContext context;
context = new AnnotationConfigApplicationContext();
context.register(AnnotationAwareAspectJAutoProxyCreator.class);
context.scan("aop.test");
context.refresh();
context.getBean(Worker.class).work();
}
}
我在使用STS插件和STS本身的eclipse中尝试过这个。我从来没有在work()
旁边看到一个红色箭头,表示建议它。
我错过了什么?
答案 0 :(得分:1)
您是否在Eclipse上安装了STS插件?它应该在Help
>上提供Eclipse Marketplace