当前位置: 首页 > news >正文

Spring源码(六)--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);/*** 返回以给定名称注册的(原始)单例对象*/@NullableObject getSingleton(String beanName);/***  检查此注册表是否包含具有给定名称的单例实例。* */boolean containsSingleton(String beanName);/*** 返回在此注册中心中注册的单例bean的名称。* */String[] getSingletonNames();/*** 返回在此注册中心中注册的单例bean的数量。*/int getSingletonCount();/*** 返回使用的单例互斥锁.* */Object getSingletonMutex();}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Prompt工程:与AI聊天机器人更好地交流
  • 通俗地理解主动元数据管理
  • SQL Server 数据误删的恢复
  • 怎样实现大语言模型微调,庞氏骗局智能合约检查,BERT
  • Android SurfaceFlinger——GraphicBuffer初始化(二十九)
  • 反转链表 - 力扣(LeetCode)
  • 生成短链接如何实现?盘点可以生成短链接的工具
  • onnx转模型时遇到错误onnx.onnx_cpp2py_export.checker.ValidationError的解决思路
  • AI大模型零基础入门
  • mac系统使用vscode 写代码老是有叮咚的声音如何解决
  • Matlab基础语法篇(下)
  • MySQL中的MVCC(多版本并发控制)
  • WebRTC通话原理(SDP、STUN、 TURN、 信令服务器)
  • Git_基础命令
  • 【ESP32 idf Uart串口通信】
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 0x05 Python数据分析,Anaconda八斩刀
  • jquery cookie
  • Laravel核心解读--Facades
  • leetcode讲解--894. All Possible Full Binary Trees
  • Logstash 参考指南(目录)
  • React-redux的原理以及使用
  • React中的“虫洞”——Context
  • REST架构的思考
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 读懂package.json -- 依赖管理
  • 高性能JavaScript阅读简记(三)
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 前嗅ForeSpider中数据浏览界面介绍
  • 深入浅出Node.js
  • -- 数据结构 顺序表 --Java
  • 微服务入门【系列视频课程】
  • 移动端解决方案学习记录
  • 白色的风信子
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #pragam once 和 #ifndef 预编译头
  • (07)Hive——窗口函数详解
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (8)STL算法之替换
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (ZT)一个美国文科博士的YardLife
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .gitignore文件---让git自动忽略指定文件
  • .net core docker部署教程和细节问题
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 反射的使用
  • .Net 垃圾回收机制原理(二)
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net 无限分类