使用CDI/Weld和JAX-RS 2.0相比使用Guice的优点是什么?

5

JAX-RS 2.0的一个目标是整合CDI并用通用的@Inject注入替换旧的@Context。但是,如果我看一下JSR 339,里面没有提到这个。那么CDI集成实际上是什么呢?使用JAX-RS与CDI相比使用Google Guice有什么优势吗?

1个回答

4

@Context仍然是在JAX-RS 2.0中进行注入的官方方法。规范确实指出,一个实现可以在@Context旁边使用@Inject(来源于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的优点在于,它与JAX-RS Web服务中可能具有的所有非JAX-RS资源的所有@Inject更一致。


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