我已经看过the following question关于如何将@Context
依赖项注入Jersey资源构造函数的问题。但我的问题略有不同 - 我想注入@PathParam
字符串。我有一个类似于以下的类:
@Path("foo/{fooId}/bar")
public class BarResource {
@Inject
public BarResource(@PathParam("fooId") String foo, Service service) {
...
}
...
}
Guice注入了Service
,但路径段始终为空。这实际上让我感到惊讶;如果有什么我认为Guice会大声爆炸抱怨无法解决的依赖。
如何以这种方式注入路径参数?为了保持这些资源类可单元测试,我宁愿避免使用字段注入。
答案 0 :(得分:0)
默认情况下,@PathParam
似乎不可接受为Constructor
参数。这new feature document个州
资源类构造函数中允许的参数取决于用于创建资源类实例的资源提供程序[...]。对于默认的每请求资源类,您可以使用UriParam,UriParam,QueryParam,MatrixParam,HeaderParam或HttpContext注释的任何参数组合。
您可以提供自己的资源提供程序来处理@PathParam
注释。