Spring-Ioc容器之BeanFactory

        前面也聊了下什么是Ioc容器,简单来说就是帮助我们实例化类,取代new步骤。取代了new操作,理所当然它需要去管理对象的生命周期过程。但是Ioc容器又怎么知道哪些类的实例化是需要接管的,哪些类又是不用去理会的呢?实际上就有xml文件用于存放托管的类信息,注解的方式也是一种存放托管类的信息。

        BeanFactory总体分两个阶段启动阶段、初始化阶段。启动阶段是1).读取xml文件(BeanDefinitonReader接口),2).将文件转换成Ioc容器里的对象(BeanDefinition,保存在BeanDefinitionRegistry中)。初始化阶段是3).调用BeanFactory中的getBean方法或者依赖对象初始化会4).执行初始化前置操作(BeanFactoryPostProcessor)比如覆盖xml定义的对象数据的值,替换xml占位符的位置,转换xml数据类型。由于xml的所有数据类型都是字符串,但是定义xml的过程中会有一些其他数据类型,那么就需要将这部分字符串转成对应的数据类型。前置操作也完成了,最后就是5).执行4次初始化对象的方法(调用BeanPostProcessor前置方法、InitalizingBean接口方法的执行、调用init-method方法、最后一次调用BeanPostProcessor后置方法),6).返回bean对象即托管对象。

        以上为BeanFactory整个流程的核心部分逻辑,了解了逻辑再去实践操作更容易理解也更容易接受。

        在注解产生之前,通常用的xml方式来记录托管对象的核心信息即用xml来描述bean信息。那么xml的结构又是怎么样呢?核心基础结构就是beans对顶层,下面套了很多的bean标签。学习xml结构去了解每个标签的作用、位置、标签有哪些属性、属性值的作用即可。不过多介绍bean-xml文件的标签类型、属性这些内容了。可以通过查阅《Spring揭秘》等方式了解标签与属性的作用。下面是xml文件最核心最基础的数据结构。

<beans>
    <bean></bean>
</beans>

        xml属于保存bean对象结构信息的一个鼻祖,也是以前非常常见的一种手段。当下环境下xml的结构学习在笔者看来阅读了解下即可,可以把更多的时间放在注解类型及作用上,注解的使用才是主流了吧。

xml标签与属性导图:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值