【问题标题】:Using session-scoped object in singleton in Spring在 Spring 的单例中使用会话范围的对象
【发布时间】:2015-02-02 08:08:01
【问题描述】:

我的一颗豆子有问题。我有一个 bean,它有一个单例范围和第二个 bean,它有会话范围。

我在我的 spring 应用程序中使用基于 java 的配置,我将代理模式添加到我的会话范围 bean,但是当我尝试使用该(会话范围)bean 时它会引发异常:

方法抛出 'org.springframework.beans.factory.BeanCreationException' 异常。无法评估my-bean-full-name$$EnhanceBySpringCGLIB#ID.toString()

从我在这里读到的http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-factory-scopes-other-injection-proxies

我以为我唯一要做的就是添加

@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)

到我的 bean 类(它也有 @Component 注释并且它被 Spring 扫描)

【问题讨论】:

  • 分享你的代码 sn-p?
  • 会话范围的 bean 是否实现了接口?如果不让它实现并可能使其可序列化
  • 感谢您的回复。 @HankLapidez 我会检查你的建议
  • @CHowdappaM 什么 sn-p?我在这里唯一使用的是 Scope 注释。我在现场使用 Autwired 来注入我的 bean。我还使用 componentScan 注释用我的 bean 扫描包。我不再使用任何代码来实现我的目标
  • @HankLapidez 它没有帮助。我在实现类上留下了注释

标签: spring session-scope


【解决方案1】:

我缺少的是我的网络应用初始化程序中的这一行:

    servletContext.addListener(new RequestContextListener());

之后,bean就被注入了

【讨论】:

    猜你喜欢
    • 2012-03-21
    • 2010-12-17
    • 2017-10-16
    • 2015-04-08
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    相关资源
    最近更新 更多