首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >普通单例还是spring单例bean?

普通单例还是spring单例bean?
EN

Stack Overflow用户
提问于 2010-10-13 12:04:49
回答 2查看 1.3K关注 0票数 2

我的应用程序中有一个单例服务。我的应用程序由于使用了spring框架而变得臃肿。

我对使用单例服务感到困惑。

1:需要时静态访问它们的普通旧单例

或者作为一个

2: Spring单例bean。在需要时使用DI注入

哪种方法是正确的?

EN

回答 2

Stack Overflow用户

发布于 2010-10-13 12:21:39

Spring singleton作用域与Singleton设计模式不同,后者与具有静态方法的类不同。

从文档中

此外,请注意,您需要非常小心地将Spring singleton用作web请求将利用的服务。因为每个请求都在它自己的线程上,所以如果你的单例维护任何状态,你可能会有线程问题。

回答您的问题:创建一个实现接口的类,并使用Spring对其进行适当的DI。如果您的服务不维护状态,您可以将其范围限定为singleton,否则可以将其范围限定为prototype。

票数 2
EN

Stack Overflow用户

发布于 2010-10-13 12:33:35

只要有可能,我就会使用Spring的bean。这个框架就是为管理这些东西而设计的,它在这方面可能比我做得更好。使用Spring依赖注入的另一个原因是可以使用模拟而不是真正的实用代码进行单元测试,从而将单元测试集中在确切的范围内。

编辑:为了回答注释中的问题,对于非bean单例,我能想到的唯一情况是实用程序代码类,它将在公共静态方法中包含通常可重用的简短代码。其他任何东西都需要实例化,因此需要一个bean。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3920689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档