【发布时间】:2015-10-06 09:39:11
【问题描述】:
许多书籍将它们列在 CDI(上下文和依赖注入)下,但在 Java EE 7 API 中,它们列在 CDI 的不同包下
- javax.decorator
- javax.interceptor
【问题讨论】:
许多书籍将它们列在 CDI(上下文和依赖注入)下,但在 Java EE 7 API 中,它们列在 CDI 的不同包下
【问题讨论】:
请参阅 JSR-346 以获得答案。你可以找到它here
装饰器是 CDI 规范的一部分。您可以在第 8 章中找到它。
拦截器不是 CDI 规范的一部分。它在 1.2.5 中被引用为与 CDI 规范的关系。它是 EJB 规范 JSR-345 的一部分,请参阅该规范中的第 7 章。
【讨论】:
@javax.interceptor.AroundInvoke注解来标记拦截器方法。但是,这 2 个规范在拦截器应用于组件的方式上有所不同。在 EJB 规范中,您在 EJB 上使用 @Interceptors 应用拦截器。在 CDI 中,您可以使用 @InterceptorBinding 在任何 CDI bean 上应用拦截器,并且您必须在 beans.xml 中打开它们。