【问题标题】:Annotation-based interceptors on EJBsEJB 上基于注解的拦截器
【发布时间】:2017-09-27 10:19:26
【问题描述】:

是否可以像在 CDI bean 上那样使用可绑定拦截器的注解在 EJB 上声明拦截器?

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@InterceptorBinding
public @interface MyInterceptor {
}

@Stateless
@Remote(MyService.class)
public MyServiceImpl implements MyService {

     @Override
     @MyInterceptor
     public String myBusinessMethod() {
          return "";
     }

}

【问题讨论】:

  • 不仅是可能的,也是推荐的做法。是什么阻碍了您尝试一下?
  • 我不知道为什么,但它似乎不适用于 JBoss 7.0。我还在调查。 @Interceptors(MyInterceptor.class 的时候我觉得很丑。
  • 添加@Priority 后,现在可以工作了。谢谢。

标签: java jakarta-ee cdi interceptor


【解决方案1】:

是的,这是可能的。您几乎可以像对待任何其他 CDI bean 一样对待 EJB。您需要激活 beans.xml 中的拦截器或添加 @Interceptor 绑定。有关更多信息,请参阅焊接文档https://docs.jboss.org/weld/reference/1.0.0/en-US/html/interceptors.html

标准的 EJB 注释也是这样实现的,可以在 src 或上面提到的文档链接中看到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-10
    • 2017-03-06
    • 2011-05-21
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    相关资源
    最近更新 更多