在Java编程中,使用Spring来控制单例实例而不是使用单例模式创建类是很常见的吗?
发布于 2015-12-16 12:45:21
那得看情况。如果您需要一个实用工具类,它没有依赖关系,并且只提供了一堆公共方法,我认为构建您自己的单例是快速而简单的。
但是,如果您想要构建一个需要注入其他依赖项的业务类,并且您可能希望定义接口以避免类之间的耦合,我认为Spring (或其他DI框架)比构建您自己的单例更好(更容易)。
发布于 2015-12-16 12:45:54
这些是不同之处:
发布于 2015-12-16 12:58:39
这取决于您对Singleton模式的解释有多松散。
在我的解释中,Singleton暗示每个给定的上下文都有一个实例。上下文通常是JVM (实际上是ClassLoader ),因为这是最容易用普通Java代码实现的,但是没有什么能阻止我将模式映射到不同的上下文,其中之一就是ApplicationContext。
根据这个定义,可以说“请求”和“会话”作用域也包含单个对象,只是范围更窄。
还请参阅this previous answer of mine,我将在这里详细介绍。
https://stackoverflow.com/questions/34312244
复制相似问题