浅谈自己对spring IOC的理解,原理与实现?(一)

        首先,的概括IOC定义,如下:IOC 就是控制反转,原来对象是由使用者来控制,有了spring之后,对象交由spring来控制管理,这就是IOC控制反转。DI,依赖注入,把对应的属性值注入到对象中,比如通过注解的方式@Auotowired,完成属性的注入。

        IOC,它是一个容器,用来存储对象,使用map结构来存储,在spring中一般存在三级缓存,singletonObjects存放完整的bean对象,整个bean的生命周期,从创建到使用到销毁的过程全部都是由容器来管理------->>(bean的生命周期)。

        spring中的bean都是通过反射的方式生成的,同时其中包含了很多扩展点,比如最常用的就是对BeanFactory的扩展,对bean的扩展,除此之外,IOC最核心的也就是填充具体bean的属性和生命周期。

           扩展:

        bean的生命周期主要包含四个方面,首先实例化Bean对象,然后设置Bean的属性,然后进行bean的初始化操作,最后是销毁bean 。在初始化阶段,有一个特别重要的接口是BeanPostProcessor,在初始化前、后调用 。

        详细参考下一篇文章:浅谈spring中bean的生命周期(二)_`宝子的博客-CSDN博客

        补充:

        IOC底层实现:就是通过反射、创建beanFactory(工厂)   

        其中关键的几个方法:createBeanFactory,

        getBean,doGetBean,createBean,doCreateBean,createBeanInstance等。

        解释描述上述几个方法:

        1、通过creteBeanFacory创建一个Bean工厂;

        2、开始循环创建对象,因为容器中的bean都是默认单例的,所以优先通过getBean,doGetBean从容器中查找,找不到的话,

        3、通过cetateBean和doCreateBean方法,通过的反射的方式创建对象,一般情况下使用的是无惨构造方法,

        4、然后进行对象的属性填充;(populateBean)

        5、最后进行其他初始化操作.。(initializingBean)

        

         

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值