Spring源码(6)--BeanFactory 实现与继承关系
BeanFactory 实现与继承关系
这些接口和类的源码, 每一个都可以看一下。
ListableBeanFactory
由bean工厂实现的BeanFactory接口的扩展,这些bean工厂可以枚举它们所有的bean实例,而不是按客户端请求逐个按名称进行bean查找。
HierarchicalBeanFactory
由bean工厂实现的子接口,可以是层次结构的一部分。
父子级联 IoC 容器的接口,子容器可以通过接口方法访问父容器; 通过 HierarchicalBeanFactory 接口,
Spring 的 IoC 容器可以建立父子层级关联的容器体系,子容器可以访问父容器中的 Bean,但父容器不能访问子容器的 Bean。
ConfigurableBeanFactory
由大多数bean工厂实现的配置接口。
这个扩展的接口只是为了允许框架内部的即插即用和对bean工厂配置方法的特殊访问。
ConfigurableBeanFactory继承了 HierarchicalBeanFactory 和 SingletonBeanRegistry。
public interface ConfigurableBeanFactory extends HierarchicalBeanFactory, SingletonBeanRegistry {
}
AutowireCapableBeanFactory
BeanFactory的扩展接口,实现该接口能够自动装配。
AutowireCapableBeanFactory 定义了将容器中的 Bean 按某种规则(如按名字匹配、按类型匹配等)进行自动装配的方法。
SingletonBeanRegistry
定义了共享bean实例的注册中心。
/**
* 在bean注册中心通过bean名称将提供的对象注册为单例对象。提供的对象需要被完全初始化。
*/
void registerSingleton(String beanName, Object singletonObject);
/**
* 返回以给定名称注册的(原始)单例对象
*/
@Nullable
Object getSingleton(String beanName);
/**
* 检查此注册表是否包含具有给定名称的单例实例。
*
*/
boolean containsSingleton(String beanName);
/**
* 返回在此注册中心中注册的单例bean的名称。
*
*/
String[] getSingletonNames();
/**
* 返回在此注册中心中注册的单例bean的数量。
*/
int getSingletonCount();
/**
* 返回使用的单例互斥锁.
*
*/
Object getSingletonMutex();
}
分类:
A1--spring源码及设计
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了