SSM框架源码剖析学习笔记:Bean的创建

Bean的注册

Bean的注册方式主要有两种:配置文件和注解,这两种方式的本质都是提供Bean的基本信息,最终实现BeanDefinition接口通过反射来创建Bean实例,这两种方式分别通过解析字符串和创建docment对象来提供Bean的基本信息。

xml文件中的${}占位符时通过BeanFactoryProcessor的实现子类PlaceHolderConfigurationSupport来解析的,BeanDefinition是不解析的。

如何理解容器

BeanFactory是容器的顶级接口,我们通常用到的对象是DefaultListableBeanFactory。
在这里插入图片描述

Bean的生命周期

  1. 实例化

  2. 属性赋值
    a.用户自定义属性赋值(比如说什么name、age)
    b.通过AWare接口(标记接口)的实现子类来对容器对象进行赋值

  3. 拓展实现
    a.执行前置处理方法
    b.执行初始化方法(invokeInitMethods)
    c.执行后置处理方法

  4. 使用对象

  5. 销毁对象

invokeInitMethods

首先判断是否实现了InitializingBean接口,如果实现就调用bean的afterPropertiesSet方法,给用户干预Bean创建留出来一个接口。如果没有就直接执行invokeInitMethods。

AOP是IOC的扩展实现:AOP主要是通过动态代理来实现的,具体方法有jdk和cjlib。在执行完第二步属性赋值之后,我们得到了一个bean对象,通过传入BeanPostProcessor的子接口生成代理对象实现AOP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值