我目前正在使用guice为依赖注入设置一个相当大的现有项目,并且需要通过@Context访问注入到rest-endpoint的请求范围的HttpServletRequest实例。我之所以需要HttpServletRequest实例,是为了创建多个后端服务所需的对象RequestContext。
我尝试添加一个guice Provider类:
public class JerseyRequestCtxProvider implements Provider<IRequestContext> {
private final HttpServletRequest request;
@Inject
public JerseyRequestCtxProvider(HttpServletRequest request) {
this.request = request;
}
@Override
public IRequestContext get() {
return new RequestContext(request);
}
}
最后将其添加到guice模块中:
bind(IRequestCtx.class).toProvider(JerseyRequestCtxProvider.class);
我也尝试将HttpServletRequest作为Provider本身并添加了guice servlet过滤器,但没有运气。
如果端点是由泽西管理的话,甚至可以在guice中访问HttpServletRequest吗?