Singleton Service

The singleton service is the ultimate sharable service. When you configure a service as
a singleton, all clients are independently connected to the same single well-known
instance context and implicitly to the same instance inside, regardless of which endpoint
of the service they connect to. The singleton is created exactly once, when the
host is created, and lives forever: it is disposed of only when the host shuts down.

 

转载于:https://www.cnblogs.com/WilliamJiang/archive/2012/03/14/2395844.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用单例模式时,确保只有一个实例是非常重要的。如果有多个实例被创建,那么这将违反单例模式的规则,可能会导致应用程序中的错误行为。 在上面的示例中,SingletonService使用了一个静态变量instance来存储实例。在getInstance()方法中,如果instance为null,那么它将创建一个实例。因此,只有在第一次调用getInstance()方法时,才会创建实例。 为了验证SingletonService是否只创建了一个实例,可以在代码中添加一些日志来跟踪实例的数量。例如: ``` @Component public class SingletonService { private static int instanceCount = 0; private static SingletonService instance; private SingletonService() { instanceCount++; System.out.println("Creating instance #" + instanceCount); } public static synchronized SingletonService getInstance() { if (instance == null) { instance = new SingletonService(); } return instance; } public void doSomething() { System.out.println("Doing something..."); } } ``` 在上面的示例中,我们添加了一个静态计数器instanceCount,用于跟踪实例的数量。在SingletonService的构造函数中,我们打印了一条日志,以显示创建了多少个实例。 当我们在其他组件中调用SingletonService时,可以看到控制台输出,以查看SingletonService是否只创建了一个实例。例如: ``` @Service public class MyService { @Autowired private SingletonService singletonService; public void doSomething() { singletonService.doSomething(); } } // Output: // Creating instance #1 ``` 由于getInstance()方法只被调用一次,因此只创建了一个SingletonService实例。如果在应用程序的其他地方调用getInstance()方法,将不会创建新的实例,而是返回现有的实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值