5

JAX-RS 2.0 的一个目标是整合 CDI 并@Context用普通@Inject注入替代旧的。但是,如果我查看JSR 339,则没有提到这一点。那么究竟什么是 CDI 集成?将 JAX-RS 与 CDI 一起使用而不是 Google Guice 会有什么优势吗?

4

1 回答 1

4

@Context仍然是在 JAX-RS 2.0 中进行注入的官方方式。然而,规范确实声明了一个实现可以@Inject同时使用@Context(来自 JAX-RS 2.0 EDR 3 的第 10.2.5 节):

实现不得要求使用@Inject@Resource触发 JAX-RS 注释字段或属性的注入。实现可能支持这种用法,但应该警告用户关于不可移植性。

因此,不确定 JAX-RS 2.0 的所有实现是否都支持@Inject,如果想要更改 JAX-RS 2.0 实现,可能会出现不兼容。

我做了一些研究,似乎 Jersey 2.0@Inject至少得到了支持。

我想使用@Inject而不是的优点@Context是它与@InjectJAX-RS Web 服务中的所有非 JAX-RS 资源更加一致。

于 2012-09-06T22:21:00.377 回答