大家好我是曜耀,今天我为大家讲一下,Spring的单列模式。
对于我们java程序员来说,Spring的单列模式是非常的不陌生了。我们都了解过Spring依赖注入Bean实列都是单列的。这是常识。
单列模式是确保一个类只有一个实列,而且自行实列化并对整个系统提供这个实列,这个类就是单列类,他提供了全局访问的方法。单列模式是一种对象创建型模式。
下图就是单列模式中的饿汉模式:
饿汉模式是在类加载的是候就创建了单列模式的对象。通过饿汉模式我们了解到单列模式大体有以下特点:
1.构造函数私有化
2.自行对外提供实列化
3.提供外界可以拿到的实列的方法
对于我们程序员来说,创建单列模式会消耗大量的资源,于是就有了懒汉模式的单列模式。如下图:
对于一些大佬来说,这种单列模式有一个很明显的问题,就是线程安全问题,在多线程并发的情况下,会发生调用getInstance()方法,从而导致创建多个单列模式,这就不是我们创建单列模式的初衷。对此可以添加锁解决这个问题。就是加个synchronized 这个锁。
添加锁可以保证线程的安全,不过锁会成为系统的瓶颈,对此,我们可以在进行改进,可以设置双重锁的方式。就是在加一次if判断来进行第二次的检验。
·以上就是曜耀以自己对学习过单列模式来自己总结。希望对个位道友有帮助。
我是曜耀,我们下次见。