我知道Spring可以创建单例bean。这是否意味着我们不需要使用'Singleton模式‘来自己创建一个java bean?弹簧单胎和单胎模式有什么区别?
发布于 2017-11-28 01:47:04
singleton是惟一的ApplicationContext (每个Spring容器)实例。这意味着,如果您创建了一个新的ApplicationContext,那么即使它是单例,也会得到bean的一个新实例。
然而,原始Java意味着每个Classloader只有一个实例。这意味着对于特定的类加载器,单例实例保持不变。在大多数情况下,这很好,不过,假设您需要每个JVM都有一个真正的单实例,那么还有一些额外的工作要做。看下面的示例https://stackoverflow.com/a/47445573/5343269
对您的问题的回答是,如果要在应用程序中实例化单个spring容器,那么spring单例bean可以被视为单例,但是这仅适用于Spring组件。这意味着,任何不是Spring的类都不能访问这个实例。
为了安全起见,不要依赖singleton并创建您自己的singleton类。
https://stackoverflow.com/questions/47522477
复制相似问题