学习java第四十天

类图中各个类的作用:

AliasRegistry:定义对alias的简单增删改等操作

SimpleAliasRegistry:主要使用map作为alias的缓存,并对接口AliasRegistry进行实现

SingletonBeanRegistry:定义对单例的注册及获取

BeanFactory:定义获取bean及bean的各种属性

DefaultSingletonBeanRegistry:对接口SingletonBeanRegistry各函数的实现

HierarchicalBeanFactory:继承BeanFactory,也就是在BeanFactory定义的功能的基础上增加了对parentFactory的支持

BeanDefinitionRegistry:定义对BeanDefinition的各种增删改操作

FactoryBeanRegistrySupport:在DefaultSingletonBeanRegistry基础上增加了对FactoryBean的特殊处理功能

ConfigurableBeanFactory:提供配置Factory的各种方法

ListableBeanFactory:根据各种条件获取bean的配置清单

AbstractBeanFactory:综合FactoryBeanRegistrySupport和ConfigurationBeanFactory的功能

AutowireCapableBeanFactory:提供创建bean、自动注入、初始化以及应用bean的后处理器

AbstractAutowireCapableBeanFactory:综合AbstractBeanFactory并对接口AutowireCapableBeanFactory进行实现

ConfigurableListableBeanFactory:BeanFactory配置清单,指定忽略类型及接口等

DefaultListableBeanFactory:综合上面所有功能,主要是对Bean注册后的处理

BeanDefinition的载入和解析

对IoC容器来说,这个载入过程,相当于把定义的BeanDefinition在IoC容器中转化成一个Spring内部表示的数据结构的过程。IoC容器对Bean的管理和依赖注入功能的实现,是通过对其持有的BeanDefinition进行各种相关操作来完成的。这些BeanDefinition数据在IoC容器中通过一个HashMap来保持和维护。

相关推荐
FuLLovers15 分钟前
2024-09-13 冯诺依曼体系结构 OS管理 进程
linux·开发语言
IT毕设梦工厂1 小时前
计算机毕业设计选题推荐-在线拍卖系统-Java/Python项目实战
java·spring boot·python·django·毕业设计·源码·课程设计
everyStudy1 小时前
JS中判断字符串中是否包含指定字符
开发语言·前端·javascript
luthane1 小时前
python 实现average mean平均数算法
开发语言·python·算法
Ylucius1 小时前
动态语言? 静态语言? ------区别何在?java,js,c,c++,python分给是静态or动态语言?
java·c语言·javascript·c++·python·学习
LvManBa2 小时前
Vue学习记录之六(组件实战及BEM框架了解)
vue.js·学习·rust
凡人的AI工具箱2 小时前
AI教你学Python 第11天 : 局部变量与全局变量
开发语言·人工智能·后端·python
sleP4o2 小时前
Python操作MySQL
开发语言·python·mysql
是店小二呀2 小时前
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
开发语言·c++·后端