EJB拦截器 vs CDI拦截器

4

在ejb-jar.xml文件中声明的EJB拦截器和在beans.xml文件中声明的CDI拦截器之间有什么区别吗?

两种拦截器都使用@Interceptors注释声明。如果CDI拦截器也适用于EJB,则为什么需要EJB拦截器?

1个回答

10

你说得对,它们基本上相同,但CDI拦截器略微更为复杂 - 例如,它们包含拦截器绑定。请参见Weld文档进行参考。请注意,未来可能会努力将EJB和CDI合并(例如,CDI 1.1允许您使用JTAs声明性事务,这有效地替换了EJB事务),因此我预计这两个项目将在未来几年合并。


“CDI 1.1提供声明式事务” - 这是不正确的。在任何版本的CDI中都没有支持此功能。 - dexter meyers
1
实际上,CDI 1.1(JSR 347)是Java EE 7的一部分,它使用@javax.transaction.Transactional注释提供声明式事务。 - Mike Argyriou
1
@MikeArgyriou 这个注解是由 JTA 提供的,而不是 CDI。它使用 CDI,但本身并不是 CDI 提供的。 - Arjan Tijms

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接