【问题标题】:Spring session Scope春季会议范围
【发布时间】:2017-03-18 22:17:27
【问题描述】:

我正在尝试在会话范围内创建一个 Spring bean:

<bean id="myClass" class="com.test.Myclass scope="session" />

当我尝试从 servlet 过滤器中的 ApplicationContext 获取类时,如下所示:

WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(config.getServletContext());
Myclass obj = (Myclass)applicationContext.getBean("myClass");

我收到以下错误:java.lang.IllegalStateException: No Scope registered for scope name 'session'

如果我将范围定义为prototype,我没有任何问题!如何从 applicationContext 检索会话范围的 spring bean?

【问题讨论】:

  • 贴出完整代码

标签: spring scope


【解决方案1】:

我之前已经回答过这个问题,看这里如何定义会话范围 bean:

Spring autowireing a session scope bean in AuthenticationSuccessHandler is not working

【讨论】:

  • 有帮助吗?
  • 一切就绪,除了在 dispatcher-servlet.xml 中添加 bean
  • 我的 bean 定义在单独的 xml 中并添加到 bcbean.xml。将尝试在 dispatched-servlet.xml 中添加并添加结果。
  • 我唯一关心的是何时定义会话范围。因为我在过滤器中处理它,所以我怀疑会话范围是在第一次请求 servlet 之后定义的。我猜不确定。
  • 在 dispatcher-servlet.xml 中添加配置有效。谢谢摩西。需要调整代码并粘贴详细信息。我担心的是注释不起作用,也没有在单独的 xml 中使用,并且在 bcbeans.xml 中添加也不起作用。可能是在第一次请求之前会话范围不可用。谢谢 Moshe。
猜你喜欢
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
  • 2015-04-11
  • 2011-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多