![](/img/trans.png)
[英]In ORMLite why should we use DAOs with an ID of a specific type when Object seems to work?
[英]Should we use spring singletons for DAOs
在我们的Web应用程序中,我们使用Spring作为依赖项注入机制。 我们有多个DAO和Manager弹簧bean,它们的默认作用域为单例,并确保所有这些bean都是无状态的。 我已经在很多地方读到了为什么单例模式不好:单例有什么不好? 。请原谅我是否已问过,但请回答上述设计是否受不良编码规范的影响,以及如何对其进行改进。
春季单例豆不使用单例模式。 它们只是被框架实例化了一次,并注入到需要它们的每个组件中。
单例模式被认为是反模式,主要是因为它使所有依赖它的类都难以测试。 春季单例豆根本没有这个问题。
单例的主要缺点是,如果它们具有任何状态,它们往往会导致不同客户端类之间的纠缠。 设计良好的服务类不应具有任何特定于操作的状态(它们通常具有对数据库池或其他资源的引用,在实例化时注入,然后在之后不进行更改),并且使用单例-适用于此类服务的范围限定的bean。
如果您从链接的问题中读到答案,它们实际上并不适用于Spring
单例。 当单范围使用Spring豆他们不是很难测试,他们不控制自己的创造, 它们通过一个接口来访问(或至少是应该的!)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.