单例(Singleton)模式
描述
- 某个类只能有一个实例 ->构造器私有
- 它必须自行创建这个实例 -> 自己编写实例化逻辑
- 它必须自行向整个系统提供这个实例 -> 对外提供实例化方法
主要演示懒汉式双重检查锁,在Spring源码中使用很多这种形式的
public class Person {
private String name;
private Integer age;
// 自己编写实例化
private volatile static Person singleton;
// 构造器私有
private Person(String name, Integer age) {
this.age = age;
this.name = name;
}
// 对外提供实例化方法
public static Person getSingleton() {
// 双重检查锁,
if (singleton == null) {
synchronized (Person.class){
if (singleton == null) {
Person person = new Person("张三", 23);
singleton = person;
}
}
}
return singleton;
}
}
Spring 在底层中怎么保证Bean单例
网友评论