spring学习之IOC

一.概念

ioc :inversion of control控制反转,控制反转的意思是,之前我们的思路都是创建对象的时候,由我们自己主动去new对象,而ioc就是将new 对象的任务交给了ioc容器,我们只需要告诉ioc容器我们需要的对象,然后ioc提供给我们

而di dependcy,依赖注入,就是ioc容器创建业务所需要的类并交给我们;

 二.原理

https://blog.csdn.net/lisongjia123/article/details/52129340  

https://blog.csdn.net/qq_27888773/article/details/77770519

1.创建Ioc配置文件的抽象资源,这个抽象资源包含了BeanDefinition的定义信息
    2.创建一个BeanFactory,这里使用了DefaultListableBeanFactory
    3.创建一个载入BeanDefinition的读取器,这里使用XmlBeanDefinitionReader来载入XML文件形式的BeanDefinition
    4.然后将上面定位好的Resource,通过一个回调配置给BeanFactory
    5.从定位好的资源位置读入配置信息,具体的解析过程由XmlBeanDefinitionReader完成
    6.完成整个载入和注册Bean定义之后,需要的Ioc容器就初步建立起来了
 最终封装成,BeanDefinition,并且放在BeanFacatory中,有map来管理;

实例化的过程,也就依赖注入是spring底层通过getbean为入口,底层Spring当中提供了两种实例化方案: BeanUtils 和 Cglib 方式。BeanUtils实现机制是通过Java的反射机制,Cglib是一个第三方类库采用的是一种字节码加强方式机制。 Spring中采用的默认实例化策略是Cglib。 

另外,实例化之后,依赖注入,利用的setPropertyValue()方法;

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值