【发布时间】:2015-04-01 21:34:58
【问题描述】:
这个问题可能有点简单,但我就是找不到解决方案。 我正在使用 Spring AOP,目前我只是想获取对框架本身创建的代理对象的引用。 我按照this 线程提供的说明进行操作,但仍然出现以下异常:
线程“main”java.lang.IllegalStateException 中的异常:找不到当前代理:建议将“exposeProxy”属性设置为“true”以使其可用。
这是我的 springContext.xml 中所需的条目:
<aop:aspectj-autoproxy expose-proxy="true"/>
这是我的方面定义:
@Aspect
public class DynamicAspect {
@Pointcut("execution(* addition.aop.Actor.play(..))")
public void play() {
}
@Before("play()")
public void directorGivesInstructions() {
System.out.println("Director: Light, camera, action!");
}
测试一切的主要方法:
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(...);
Actor actor = (Actor) context.getBean("actor");
actor.play();
}
这是 Actor 类中引发异常的方法:
public void play() {
AopContext.currentProxy();
System.out.println("Actor starts playing his role...");
}
切面被编织并正确调用。
非常感谢!
【问题讨论】:
标签: spring spring-aop