java - Java Spring 服务是邪恶的,因为它们是单例的吗?

标签 java spring design-patterns singleton

<分区>

我在 web 和 stack 上阅读了一些声称单例是邪恶的讨论。 喜欢: root-cause-of-singletonsWhy is Singleton considered an anti-pattern?

我读到诸如“单例使代码复杂,难以重用和测试”之类的评论。 我使用的代码具有无状态单例的 Spring 服务,我看不到这些点在这里如何成立。

此类服务是否也属于不良做法?为什么?或者所有的争论都只针对有状态的单例?

最佳答案

您将 Spring 的单例(一个普遍的好东西)与 Singleton 设计模式混淆了,后者受到您在引用资料中讨论的问题的困扰。

单例模式假设存在一个引用单例对象的static 全局变量。它通常还假设有很多样板代码用于管理单例的生命周期(例如,延迟初始化它)。

Spring 既不让您实现单例模式,也不在内部使用它。 Spring 单例以声明方式创建,并连接在一起形成完整的对象图,包括循环依赖关系的解决。

关于java - Java Spring 服务是邪恶的,因为它们是单例的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26719981/

相关文章:

java - 工厂模式是否应该包含验证逻辑

java - Log4j、maven tomcat7-maven-plugin、spring rest 服务

java - 使用@RequestParam还是@PathVariable?

c++ - 工厂模式中的传值

spring - 如何在 thymeleaf 模板中生成 svg

java - 除主以外的 Hibernate OneToMany 关联

java - JFrame中如何访问多个JPanel?

java - 从 ormlite 数据库表中选择不重复的内容

java - JTable - 显示为复选框的 boolean 值并且必须是可编辑的

java - 我可以在 Java Swing 应用程序中使用 Google Visualization API 吗?