JAX-RS 2.0的一个目标是整合CDI并用常见的@Inject注入替换旧的@Context.但如果我看一下JSR 339,就没有提到.那么CDI整合究竟是什么呢?将JAX-RS与CDI而不是Google Guice一起使用是否有任何优势?
最佳答案
@Context仍然是在JAX-RS 2.0中进行注入的官方方式.但是规范确实说明一个实现可以在@Conject和@Context(来自JAX-RS 2.0 EDR 3的第10.2.5节)之间使用@Inject:
原文链接:/java/438127.htmlImplementations MUST NOT require use of
@Inject
or@Resource
to
trigger injection of JAX-RS annotated fields or properties.
Implementations MAY support such usage but SHOULD warn users about
non-portability.
因此,不确定JAX-RS 2.0的所有实现是否支持@Inject,并且如果想要更改JAX-RS 2.0实现,则可能会出现不兼容性.
我做了一点研究,看来Jersey 2.0至少得到了@Inject的支持.
我想使用@Inject而不是@Context的优势在于,它与JAX-RS Web服务中的所有@Inject的非JAX-RS资源一致.