Spring IOC源码--读取BeanDefintion

bg:25届毕业生,目前在实习,记录一下学习成长过程中的感悟。

个人心得:如果没有源码阅读经验的新手在刚接触源码的时候很容易晕头转向。网上关于Spring源码的资料和视频很多,但是都很杂,而且每个人的痛点都不一样,就需要从各个资料中去整合。这个过程。。。非常的痛苦。下面就具体说明一下我的学习方式和个人理解,理解有误的地方欢迎指正。


 Spring IOC流程
根据流程图可以看IOC容器创建Bean对象可以大致分为三步:
1. 读取BeanDefinition(Bean定义信息)
2. 实例化(创建Bean)
3. 初始化(填充Bean)

读取BeanDefinition


Spring两大容器BeanFactory和ApplicationContext我就不介绍了,这里详细介绍一下ApplicationContext的实现子类AnnotationConfigApplicationContext(注解)以及对比一下ClassPathXmlApplicationContext(XML)。

两个类的构造函数都调用了refresh()方法,该方法继承于AbstractApplicationContext,也是容器管理Bean的主要方法。Spring要想管理Bean,首先要先new一个BeanFactory容器,依托这个容器去管理。这两个类第一个不同的地方就在于容器创建时间,AnnotationConfigApplicationContext在调用this()无参构造的同时会调用父类GenericApplicationContext的无参构造new一个DefaultLi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值