Spring单例模式的知识点

大家好我是曜耀,今天我为大家讲一下,Spring的单列模式。

对于我们java程序员来说,Spring的单列模式是非常的不陌生了。我们都了解过Spring依赖注入Bean实列都是单列的。这是常识。

单列模式是确保一个类只有一个实列,而且自行实列化并对整个系统提供这个实列,这个类就是单列类,他提供了全局访问的方法。单列模式是一种对象创建型模式。

下图就是单列模式中的饿汉模式:

饿汉模式是在类加载的是候就创建了单列模式的对象。通过饿汉模式我们了解到单列模式大体有以下特点:

1.构造函数私有化

2.自行对外提供实列化

3.提供外界可以拿到的实列的方法

对于我们程序员来说,创建单列模式会消耗大量的资源,于是就有了懒汉模式的单列模式。如下图:

对于一些大佬来说,这种单列模式有一个很明显的问题,就是线程安全问题,在多线程并发的情况下,会发生调用getInstance()方法,从而导致创建多个单列模式,这就不是我们创建单列模式的初衷。对此可以添加锁解决这个问题。就是加个synchronized 这个锁。

添加锁可以保证线程的安全,不过锁会成为系统的瓶颈,对此,我们可以在进行改进,可以设置双重锁的方式。就是在加一次if判断来进行第二次的检验。

·以上就是曜耀以自己对学习过单列模式来自己总结。希望对个位道友有帮助。

我是曜耀,我们下次见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值