1

我正在探索@RequestScoped并想知道是否有办法在不安装ServletModule. 我正在使用 Guice 3.0 + Jersey 1.17,可能不想使用GuiceContainer& GuiceServletContextListener

我希望根据 Jersey 请求中的某些用户输入来创建每个请求的对象(注入)。可能吗?GuiceContainer如果我必须ServletContextListener用 Guice替换现有的,那么使用的性能和安全考虑是什么?

如果有一种RequestScope根据我的需要使用的方法,你能给我一些相同的参考吗?

4

1 回答 1

1

可以将自定义Scope实现绑定到预定义的范围注释,例如@RequestScoped. 这确实意味着您不能使用ServletModule,因为您不能将两个不同的实现绑定到同一个作用域注释。

有关详细信息,请参阅自定义范围的文档。您需要编写代码来确定什么构成“请求”以用于范围界定,并根据需要触发进入和退出范围。

例如,在正常的 Guice 实现中,ServletScopes.RequestScope使用ThreadLocal 初始化的 inGuiceFilter来跟踪当前请求是什么。

于 2016-03-24T23:25:46.200 回答