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