Jersey Dropwizard:Dropwizard guicey子资源定位器

Jersey Dropwizard:Dropwizard guicey子资源定位器,jersey,guice,dropwizard,Jersey,Guice,Dropwizard,我正在将我的应用程序从Jersey2/HK2迁移到Dropwizard。我正在使用dropwizard guicey将Guice集成到我的应用程序中,同时维护我的一些HK2绑定/功能 Dropwizard guicey默认绑定singleton范围内的所有资源,这让我想知道——在这种情况下,绑定子资源的建议方法是什么?在泽西岛,我可以做一些简单的事情 @Path("{pathParamId}/sub-resource") public Class<MySubResource> myS

我正在将我的应用程序从Jersey2/HK2迁移到Dropwizard。我正在使用dropwizard guicey将Guice集成到我的应用程序中,同时维护我的一些HK2绑定/功能

Dropwizard guicey默认绑定singleton范围内的所有资源,这让我想知道——在这种情况下,绑定子资源的建议方法是什么?在泽西岛,我可以做一些简单的事情

@Path("{pathParamId}/sub-resource")
public Class<MySubResource> mySubResource() {
    return MySubResource.class;
}
Dropwizard似乎无法获取Guice在MySubResource中绑定的依赖项,因为这些资源都是由Jersey管理的


我最终要寻找的是Jersey默认为资源和Guice提供的每请求绑定,以便在该级别下进行注入。

在您的示例中,根资源将由Guice(安装者)管理,子资源将由HK(每请求)创建

要在子资源中使用guice服务,您需要启用:

  • 添加
    org.glassfish.hk2:guice桥:2.5.0-b32
    dependency
  • 使用
    选项启用桥接选项(GuiceyOptions.UseHkBridge,true)

我将样本添加到回购协议中。它还显示了如何使用纯guice实现您的案例。

在您的示例中,根资源将由guice管理(由安装者),子资源将由HK创建(根据请求)

要在子资源中使用guice服务,您需要启用:

  • 添加
    org.glassfish.hk2:guice桥:2.5.0-b32
    dependency
  • 使用
    选项启用桥接选项(GuiceyOptions.UseHkBridge,true)
我将样本添加到回购协议中。它还展示了如何使用纯guice实现您的案例

public class MySubResource {
    private String id;

    public MySubResource(@PathParam("pathParamId") id) {
        this.id = id;
    }
}