【问题标题】:Using EJB interceptors after a method call在方法调用之后使用 EJB 拦截器
【发布时间】:2011-06-21 14:07:06
【问题描述】:

我知道可以通过使用@AroundInvoke 注解在方法调用之前使用拦截器。

我想做的是在方法调用之后执行某些代码,这样我就可以在方法执行之前和之后创建一个日志条目。

这可以通过 EJB3 实现吗,还是我需要使用 AOP?

【问题讨论】:

    标签: ejb-3.0 interceptor


    【解决方案1】:

    @AroundInvoke 拦截器传入InvocationContext,必须调用proceed()来推进方法。因此:

    @AroundInvoke
    public Object log(InvocationContext ic) throws Exception {
      logEntry();
      try {
        return ic.proceed();
      } finally {
        logExit();
      }
    }
    

    根据您的需要,您还可以记录返回值或异常,过滤记录的方法等。

    【讨论】:

      猜你喜欢
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 2015-08-14
      • 2021-12-18
      • 2021-09-16
      • 2014-10-11
      相关资源
      最近更新 更多