SingletonBeanRegistry】的更多相关文章

此接口是针对Spring中的单例Bean设计的.提供了统一访问单例Bean的功能,BeanFactory可实现此接口以提供访问内部单例Bean的能力. //将对象(singletonObject)注册为单例,名称为beanName void registerSingleton(String beanName, Object singletonObject); //获取名称为beanName的对象 Object getSingleton(String beanName); //注册表中是否存在一个…
Github: SingletonBeanRegistry.java SingletonBeanRegistry package org.springframework.beans.factory.config; import org.springframework.lang.Nullable; /** * 为共享Bean实例(shared bean instances)定义注册表(define a registry)的接口 * Can be implemented by {@link org.…
前言 上篇文章我们对注册 Bean 的核心类 BeanDefinitionRegistry 进行了讨论,这里的注册 Bean 是指保存 Bean 的相关信息,也就是将 Bean 定义成 BeanDefinition,然后放入容器中.除此之外,Spring 还提供一个统一操作单例 Bean 实例的类 SingletonBeanRegistry,通过该类可直接对单例 Bean 的实例进行存储.注册等操作. SingletonBeanRegistry SingletonBeanRegistry 是一个…
// 用于内部标记的空的单例对象(不支持null)protected static final Object NULL_OBJECT = new Object(); // 缓存单例对象根据beanNameprivate final Map<String, Object> singletonObjects = new ConcurrentHashMap<String, Object>(256);// 早期缓存单例对象的Factory根据beanNameprivate final Ma…
// 给定一个存在的object对象,该Registry将它存储为一个单例的根据给定的beanName(给定的object已经完全初始化完成,在访问Registry的单例object时应该是同步的)void registerSingleton(String beanName, Object singletonObject);// 返回一个单例对象根据beanName(仅返回一个已经初始化完成的单例对象,在获取之前还要需要解决解析规范的beanName)Object getSingleton(St…
一.AOP实现 Spring代理对象的产生:代理的目的是调用目标方法时我们可以转而执行InvocationHandler类的invoke方法,所以如何在InvocationHandler上做文章就是Spring实现Aop的关键所在.Spring的代理类正是继承了Factory Bean的ProxyFactoryBean,ProxyFactoryBean之所以特别就在它可以让你自定义对象的创建方法.当然代理对象要通过Proxy类来动态生成.下面是Spring创建的代理对象的时序图:Spring创建…
上一篇分析了BeanFactory体系的2个类,SimpleAliasRegistry和DefaultSingletonBeanRegistry——Spring源码分析——BeanFactory体系之抽象类.类分析(一),今天继续分析. 一.工厂Bean注册支持——FactoryBeanRegistrySupport 废话不多说,直接看我注释的源码: /* * Copyright 2002-2012 the original author or authors. * * Licensed und…
上一篇介绍了BeanFactory体系的所有接口——Spring源码分析——BeanFactory体系之接口详细分析,本篇就接着介绍BeanFactory体系的抽象类和接口. 一.BeanFactory的基本类体系结构(类为主): 上图可与 Spring源码分析——BeanFactory体系之接口详细分析 的图结合分析,一个以接口为主,一个以类为主(PS:Spring的体系结构要分析清楚,不得不曲线救国啊!不然27寸屏幕给我画估计都装不下.). 具体: 1.7层的类体系继承. 2.Abstrac…
Spring的BeanFactory的继承体系堪称经典.这是众所周知的!作为Java程序员,不能错过! 前面的博文分析了Spring的Resource资源类Resouce.今天开始分析Spring的IOC部分.众所周知,IOC是Spring框架最迷人的地方.它最重要的接口,就是BeanFactory了.BeanFactory有着庞大的继承.实现体系,有众多的子接口.实现类.本博文的目标就是抽丝剥茧,从源代码入手,分析Spring的实现和架构,从中进步. 在阅读的过程中,可以参照Spring文档来…
一.BeanFactoryBeanFactory 是 Spring 的“心脏”.它就是 Spring IoC 容器的真面目.Spring 使用 BeanFactory 来实例化.配置和管理 Bean. BeanFactory:是IOC容器的核心接口, 它定义了IOC的基本功能,我们看到它主要定义了getBean方法.getBean方法是IOC容器获取bean对象和引发依赖注入的起点.方法的功能是返回特定的名称的Bean. BeanFactory 是初始化 Bean 和调用它们生命周期方法的“吃苦…