在AspectJ中方法调用期间拦截对象

时间:2015-07-29 14:13:10

标签: java spring aop aspectj spring-aop

我的Dao图层

中有以下方法

public void setApples(List<Apple> apples)

我希望每次执行方法时拦截apples集合,并将Apple的实例推送到接收器。

我正在尝试使用Aspects现在使用哪个注释来捕获相关对象以及切入点表达式应该是什么?我正在尝试@AfterReturning,但这是一个无效方法,我如何捕获这个参数?我是AOP的初学者,请原谅这个问题是否过于琐碎。

更新

解决方案:Get method arguments using spring aop?

1 个答案:

答案 0 :(得分:0)

你有两个选择,要么创建一个spring aop proxy(1)bean,要么使用aspectj(2)。

  1. 将在运行时使用,它将创建一个代理“包装器”,它将拦截对方法的调用。看一下ProxyFactoryBean / BeanNameAutoProxyCreator(建议),NameMatchMethodPointcut(切入点)。
  2. 使用AspectJ创建相同的截取。看看&lt; AOP:切入点&GT;和&lt; AOP:方面&GT;
  3. 在这两种情况下,您需要在方法执行之前进行拦截。所以要么使用&lt; AOP:前&GT;或MethodBeforeAdvice