深入浅出Spring的IOC容器,让我们对Spring的IOC容器有一个简单的认识

1.IOC概述

1.1.控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现

1.以前的时候,比如我们以前的时候创建对象如下:

在这里插入图片描述

1.2.我们需要创建一个容器,同时需要一种描述来让容器知道需要创建的对象与对象的关系。

1.这里所谓对的与对象关系,比如:
  每个对象的别名叫啥,每个对象指向那个具体的clas对象类
2.另外,比如一个对象中,可能需要其他对象支持即:依赖于其他对象,那么我们在创建某个对象的时候,能否根据配置进行创建依赖的对象等等

2.首先了解几个IOC-Spring的核心容器类

2.1.BeanFactory

2.1.1.BeanFactory与FactoryBean的区别

https://blog.csdn.net/u014636209/article/details/107986152

2.1.2.BeanFactory只定义接口的基础的行为规范

在这里插入图片描述

2.1.3.BeanFactory的重要的子类实现

在这里插入图片描述

2.1.3.1.ListableBeanFactory
图示

在这里插入图片描述

概述
1.从上面的ListableBeanFactory我们可以看出来,这个工厂类,主要是解决的关于多个Bean的操作
  比如:判断某个Bean是否存在于工厂容器Bean中
   	   根据某个class,获取所有的BeanName
   	   根据某个class以及注解,获取所有的Bean
2.总结下来,主要是针对返回值有可能为多个,如同List类型;   	   
2.1.3.2.HierarchicalBeanFactory
图示

在这里插入图片描述

概述
1.这个主要是定义可以获取具有继承关系的父类的工厂类;
2.比如AbstractApplicationContext最终集成了上面的HierarchicalBeanFactory这个类
  下面定义了其父工厂:ApplicationContext

在这里插入图片描述

2.1.3.3.AutowireCapableBeanFactory
图示

在这里插入图片描述

概述
1.AutowireCapableBeanFactory,很明显autowire为“自动注入”,Capable意为“能”
  所以AutowireCapableBeanFactory主要是指的“为能进行自动注入而特殊定义的BeanFactory“
2.关于AutowireCapableBeanFactory所规定的具体的方法,我们暂时不做解释;

2.1.4.DefaultListableBeanFactory

在这里插入图片描述

1.从上面图中可以看出来,DefaultListableBeanFactory间接的继承了上面我们说的三个类
  也就具备了这三个工厂定义的属性和方法;

在这里插入图片描述

2.1.5.BeanDefinition 对于Bean属性的定义都存在BeanDefinition

这里定义的都是抽象的方法行为,具体实现由子类处理,比如:AbstractBeanDefinition
在这里插入图片描述

2.1.5.1.AbstractBeanDefinition:集成BeanDefinition,实现相关类,同时丰富行为定义方法

在这里插入图片描述

在这里插入图片描述

2.1.5.2.BeanDefinitionReader:为解析xml中的Bean的定义,然后进行赋值给BeanDefinition对象

BeanDefinitionReader是一个接口,只是定义行为,具体实现,由不同的BeanDefinitionReader,
大家前期可以看默认的AbstractBeanDefinitionReader和XmlBeanDefinitionReader

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东山富哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值