简单聊聊BeanFactory继承体系

Spring系列文章首发:简单聊聊BeanFactory继承体系 缓存

1.BeanDefinitionRegistry 注册表

Spring 配置文件中每个节点元素在 Spring 容器里都经过一个 BeanDefinition 对象表示,它描述了 Bean 的配置信息。而 BeanDefinitionRegistry 接口提供了向容器手工注册BeanDefinition 对象的方法。编辑器

2.BeanFactory 顶层接口

位于类结构树的顶端 ,它最主要的方法就是 getBean(String beanName),该方法从容器中返回特定名称的 Bean,BeanFactory 的功能经过其余的接口获得不断扩展。cdn

3.ListableBeanFactory

该接口定义了访问容器中 Bean 基本信息的若干方法,如查看 Bean 的个数、获取某一类型Bean 的配置名、查看容器中是否包括某一 Bean 等方法。对象

4.HierarchicalBeanFactory 父子级联

父子级联 IoC 容器的接口,子容器能够经过接口方法访问父容器; 经过HierarchicalBeanFactory 接口, Spring 的 IoC 容器能够创建父子层级关联的容器体系,子容器能够访问父容器中的 Bean,但父容器不能访问子容器的 Bean。Spring 使用父子容器实现了不少功能,好比在 Spring MVC 中,展示层 Bean 位于一个子容器中,而业务层和持久层的 Bean 位于父容器中。这样,展示层 Bean 就能够引用业务层和持久层的 Bean,而业务层和持久层的 Bean 则看不到展示层的 Bean。blog

5.ConfigurableBeanFactory

是一个重要的接口,加强了 IoC 容器的可定制性,它定义了设置类装载器、属性编辑器、容器初始化后置处理器等方法。继承

6.AutowireCapableBeanFactory 自动装配

定义了将容器中的 Bean 按某种规则(如按名字匹配、按类型匹配等)进行自动装配的方法。接口

7.SingletonBeanRegistry 运行期间注册单例 Bean

定义了容许在运行期间向容器注册单实例 Bean 的方法;对于单实例( singleton)的 Bean 来讲,BeanFactory 会缓存 Bean 实例,因此第二次使用 getBean() 获取 Bean 时将直接从IoC 容器的缓存中获取 Bean 实例。Spring 在 DefaultSingletonBeanRegistry 类中提供了一个用于缓存单实例 Bean 的缓存器,它是一个用 HashMap 实现的缓存器,单实例的 Bean 以beanName 为键保存在这个 HashMap 中。get

相关文章
相关标签/搜索