面向Spring方面的编程

时间:2016-08-26 09:00:39

标签: java spring-aop

我需要根据Spring @Before Aspect的结果阻止方法执行。有什么方法可以使用Spring AOP支持来实现这一点。

以下是我的Spring配置:

<aop:config>
  <aop:aspect id="icpt_da" ref="inboundWSRequestInterceptor">
     <aop:before method="interceptDataArrived" pointcut="execution(* com.emeter.ami.openway.delegate.MeterDataSubscriberServiceDelegate.dataArrived(..)) and args(dataArrivedDocument)" />
  </aop:aspect>

我的目的是避免执行方法MeterDataSubscriberServiceDelegate.dataArrived基于方面的结果“inboundWSRequestInterceptor”

由于 亚太区首席技术官Matt

1 个答案:

答案 0 :(得分:0)

如果您没有被迫使用@Before - 您可以使用@Around建议而不是在方法内部进行验证 - 而不是根据调用结果进行调用:

if(verificataionPassed){
   joinPoint.proceed();
}

有关@Around的详细信息,您可以查看示例 - here