java - EJB 上基于注释的拦截器

标签 java jakarta-ee cdi interceptor

是否可以使用可拦截器绑定(bind)注释在 EJB 上声明拦截器,就像我们在 CDI bean 上所做的那样?

@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 "";
     }

}

最佳答案

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

标准 EJB 注释也是这样实现的,如 src 或上述文档链接中所示。

关于java - EJB 上基于注释的拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46445366/

相关文章:

java - Log4j 单例包装器的好处?

jakarta-ee - 如何解决线程 "main"javax.ejb.NoSuchEJBException 中的 EJBCLIENT000079 异常?

jakarta-ee - 用于将 Quartz 与 CDI 一起使用的自定义 CDJobFactory

java - 无法在自定义 Apache Shiro AuthorizingRealm 中 @Inject 我的 DAO

java - 将私有(private)方法更改为 protected 以进行测试

java - 如何以矩阵格式排列输出?#java

java - Jersey 异常映射器不处理资源构造函数中的异常

java - Tomcat 7/TomEE 1.6 @Webfilter 注释。没有从 Jar 中加载

java - 每次事件发生时都会调用@PostConstruct

jboss - 混合使用 Spring MVC 和 CDI/JEE6 的最佳方式是什么?