Spring中使用到的设计模式

简单工厂(非23种设计模式中的一种)

BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象

工厂方法

FactoryBean接口。

实现FactoryBean接口,重写getObject方法自定义Bean的实例类型;spring会在使用getBean()调用获得该bean时,会自动调用该bean的getObject()方法。

单例模式

获取单例Bean的方法实现就是单例模式的实现,提供了全局唯一的获取Bean的方法入口,但是没有从构造器级别去控制单例,这是因为spring管理的是任意的java对象。

protected Object getSingleton(String beanName, boolean allowEarlyReference) {
    //检查缓存中是否存在实例
    Object singletonObject = this.singletonObjects.get(beanName);
    if (singletonObject == null && isSingletonCurrentlyInCreation(beanName)) {
        //如果为空,则锁定全局变量并进行处理。
        synchronized (this.singletonObjects) {
            //如果此bean正在加载,则不处理
            singletonObject = this.earlySingletonObjects.get(beanName);
            if (singlet

猜你喜欢

转载自blog.csdn.net/qq_29569183/article/details/113841929