从我在网上的了解来看,自2008年以来,Guice和Jersey整合的最新技术已经停滞不前,当时两个团队陷入了僵局。问题的关键是JAX-RS注释执行字段和方法注入,这与Guice自身的依赖注入不兼容。
我发现的一些例子并没有详细说明:
Iqbalyusuf在Google App Engine Java上结合Jersey和Guice的帖子存在很多样板代码(手动获取和调用注射器)。我希望绑定和注入可以通过Guice注释在幕后进行。
Jonathan Curran的文章使用Jersey、Guice和JSR-250创建RESTful服务给了我希望,因为它更加实用(2010年),但它只展示了如何在Guice ServletModule中启动Jersey服务。然而,并没有展示任何真正的依赖注入示例。我想这是留给读者自己练习的。Curran的帖子可能是将Guice和Jersey连接起来的正确第一步,所以我打算从这里开始。
James Strachan在一篇文章中写道:
JAX-RS与Spring、Guice、GuiceyFruit或JBossMC等依赖注入框架配合良好 - 你可以选择任何一个你喜欢的。
但从实践者的角度来看,我没有看到证据。
我发现缺乏结合JAX-RS和Guice注释的实际示例和解释。例如:
- 我认为我不能在Jersey中使用构造函数注入任何资源,因为Jersey想要控制这个过程。
- 我不确定是否可以将@Inject与@PathParam、@QueryParam等结合使用。
- 如何在MessageBodyWriter实现中使用注入。
有没有人有非平凡的应用程序示例(最好带有源代码),将Jersey和Guice结合起来而不会牺牲其中任何一个?我将继续走这条路,但是Jersey和Guice列表上的碎片让我觉得我正在重复之前其他人的工作。