2

我已经看到了以下关于如何将@Context依赖项注入 Jersey 资源构造函数的问题。但我的问题略有不同——我想注入一个@PathParam字符串。我有一个类似于以下的类:

@Path("foo/{fooId}/bar")
public class BarResource {
  @Inject
  public BarResource(@PathParam("fooId") String foo, Service service) {
    ...
  }
  ...
}

ServiceGuice 很好地注入,但路径段始终为空。这实际上让我感到惊讶;如果有什么我认为 Guice 会大声抱怨无法解决的依赖关系的话。

如何以这种方式注入路径参数?为了保持这些资源类可单元测试,我宁愿避免字段注入。

4

1 回答 1

0

默认情况下,这似乎@PathParam是不可接受的Constructor参数。这份新的功能文件指出

资源类构造函数中允许的参数取决于用于创建资源类实例的资源提供者 [...]。对于默认的 per-request 资源类,您可以使用带有 UriParam、UriParam、QueryParam、MatrixParam、HeaderParam 或 HttpContext 注释的参数的任意组合。

您可以提供自己的资源提供程序来处理@PathParam注释。

于 2013-08-28T13:44:37.527 回答