Spring IoC

简介

将原本由程序员控制的对象交由Spring IoC容器控制。
在不使用IOC模式的时候,程序员需要手动创建对象并且手动去配置对象的属性。
使用了IOC模式,IOC容器就会负责创建和配置对象,并且IOC容器会把这些对象自动注入到依赖它的地方

使用

以平常开发最常见的场景举个例子

创建

先讲创建,controller层对象依赖service层对象,这时候这需要在两个对象上加上对应的注解,标识这些对象需要交给Spring的IOC容器管理,然后IOC容器就会自动创建这几个对象

注入

再讲注入,因为controller层对象需要使用到service层对象,这时候只需要在controller对象里定义一个service对象的引用,然后加上@Autowired注解,IOC容器就会自动将创建好的service对象赋值给这个引用

原理

最后讲一下Spring IOC的原理,Spring的IOC容器其实就是ApplicationContext接口的一个实现,这个接口它继承自BeanFactory,然后这个接口的两个常用实现包括ClassPathXmlApplicationContext,和AnnotationApplicationContext,它们分别根据xml配置文件和注解去构造IOC容器,也就是BeanFactory。

接下来我简单讲一下ApplicationContext的构造过程中比较重要的两个步骤

第一步,创建BeanFactory,并且加载注册bean
先说BeanFactory的创建,Spring会创建一个BeanFactory类型的对象,然后赋值给ApplicationContext内部的一个BeanFactory类型的引用。前面有讲到ApplicationContext继承了BeanFactory,但是根据这一步操作就可以推断,其实ApplicationContext里对BeanFactory接口的实现其实是通过内部的一个Beanfactory类型的实例;然后再讲一下bean的加载和注册,Spring会将xml里的bean配置转换成BeanDefinition存储在BeanFactory里,然后BeanDefinition 中保存了Bean 信息,比如这个 Bean 是哪个类、是否是单例的、是否懒加载、这个 Bean 依赖了哪些 Bean 等等。

第二步,就是Bean的初始化。
通过第一步生成的BeanDefinition去构造bean对象

大概这些

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值