【发布时间】:2016-07-22 16:10:36
【问题描述】:
我正在尝试在资源构造函数中同时使用 Jersey 的 @QueryParam 和 Guice 的 @Inject。从网上看,之前也有类似的问题问过我:
How can I mix Guice and Jersey injection?
http://users.jersey.dev.java.narkive.com/zlGMXuBe/can-queryparam-be-used-in-resource-constructor-along-with-guice-injection
这似乎是不可能的。但是,这些问题已经存在好几年了,那么我现在正在尝试做的事情可能吗?
以下是我正在尝试做的一些代码:
@Path("/mypath")
public class MyResource {
private Manager manager;
private String type;
@Inject
public MyResource(Manager manager,
@QueryParam("type") String type) {
this.manager = manager;
this.type = type;
}
@GET
@Produces("text/plan")
@Path("/{period}")
public String myMethod(@PathParam("period") String period) {
return manager.foo(period, type);
}
}
谢谢!
【问题讨论】:
-
这没有意义?
MyResource是一个单例并处理所有请求。在施工时没有请求,因此没有@QueryParam。 -
@LanceJava 如果您删除 Guice
@Inject的东西,它可以工作。您可以在请求中传入查询参数,构造函数会将其设置为您传入的任何内容。 -
好吧,我自己不是泽西岛用户。 Spring mvc 等使用单例而不是每个请求事件处理程序。我只能假设您需要以某种方式将 guice 插入 Jersey 注射器