【问题标题】:Understanding Singleton objects in a Spring application [closed]了解 Spring 应用程序中的单例对象 [关闭]
【发布时间】:2016-09-28 20:17:21
【问题描述】:

我们有一个 Spring Web 应用程序,用户可以在其中登录并下订单。有一个工厂 bean,它是一个单例对象。这个工厂 bean 保存用户信息。此外,任何时候都会有多个用户登录到 Web 应用程序。

当我读到单例时,它说每个 JVM 只会创建一个对象。所以我想了解用户信息将如何存储在这个单例对象中?

【问题讨论】:

  • 您能否分享一些小的最小可执行代码,以便我们能够尽最大努力理解您的问题?
  • 在 Spring 中,您通常不会创建类级别的单例;相反,您创建一个普通类的单个实例,并让 Spring 负责将它提供给所有需要它的服务。
  • 这里描述的不是spring如何定义单例,见Is Spring default scope Singleton or not?

标签: spring singleton


【解决方案1】:

根据您的描述,我推断工厂 bean 是单例,并且它创建用户信息实例。这意味着所有 bean 都将使用同一个工厂来创建用户信息实例;例如当用户登录时调用工厂bean来初始化用户。

注意:这都是理论上的,因为您分享的信息很少。

【讨论】:

    【解决方案2】:

    看看这个link,当加载 Ioc 容器时,Singleton bean 会初始化一次,如果你想要一个对象为每个连接的用户存储特定信息,那么它的属性值和状态对于所有连接的用户都是相同的,你必须设置其范围:“会话”。 单例 bean 可用于存储有关服务器的信息,或在特定时间为所有连接的所有用户所共有的信息,所有连接的用户看到此类 bean 的相同值和状态

    【讨论】:

      猜你喜欢
      • 2015-02-01
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多