编程语言
首页 > 编程语言> > java-使用guice的会话状态

java-使用guice的会话状态

作者:互联网

我有一些会话范围的状态.保持它的第一个想法是会话范围的servlet.所以我像这样绑定我的servlet

bind(Foo.class).in(ServletScopes.SESSION);

但是我有一个例外

javax.servlet.ServletException: Servlets must be bound as singletons. Key[type=Foo, annotation=[none]] was not bound in singleton scope.

那么Servlet不能具有ServletScopes的作用域吗?什么是处理会话状态的正确方法(是的,当然最好写较少的servlet /类/应用程序状态)?

解决方法:

根据我的理解,您可以将所需的任何内容绑定到会话范围,问题是在您的示例中Foo似乎是Servlet的子类,并且Servlet必须绑定在Singleton范围内.

要解决此问题,只需在会话范围内绑定状态(称为Bar),然后为Foo构造函数提供Provider< Bar>.参数(将由Guice填充),以便您可以从单例范围的Foo Servlet访问会话范围的状态.

标签:guice,java,guice-servlet
来源: https://codeday.me/bug/20191023/1913354.html