Spring IOC 原理

本文深入探讨Spring IOC的原理,从BeanDefinition、BeanFactory到Bean构建过程,解析Bean的依赖关系处理,以及BeanFactory与ApplicationContext的区别。通过源码分析,揭示Spring如何根据XML配置生成BeanDefinition,并在BeanFactory中实例化Bean,最后讨论ApplicationContext提供的额外功能。
摘要由CSDN通过智能技术生成

Spring IOC原理

说到spring不得不提其两大特性IOC、AOP,本文主要介绍结合代码看下spring Ioc相关原理,阅读源码如果只是为了看源码效率就会很低,还是要有一定的目的性,我们结合着以下的问题去源码中找答案。本篇文章为《图灵学院》课程笔记

  • Bean工厂是如何产生Bean的
  • Bean的依赖关系是由谁来解决的
  • Bean工厂和应用上下文的区别

如下图spring Ioc的整体架构图中可以看出,Spring启动时读取bean配置信息,并在spring中生成一份相应bean配置注册表,然后会根据注册表实例化Bean,并且装配好bean 之间的依赖关系,为上层应用提供bean实例,其中bean的缓存池是通过hashmap实现的

img

bean的构建过程

spring.xml中保存了Bean的描述配置,BeanFactory读取这些配置然后生成bean,这是我们对ioc原理的一般理解,深入思考还会有更多问题产生

  • 哪个java对象承载了配置信息里的内容
  • 这些承载对象是读取配置文件并装载的
  • 这些装载对象又保存在哪里
BeanDefinition(Bean定义)

ioc 实现中 我们在xml 中描述的Bean信息最后 都将保存至BeanDefinition (定义)对象中,其中xml bean 与BeanDefinition 程一对一的关系。xml bean中设置的属性最后都会体现在BeanDefinition中

img

由此可见,xml bean中设置的属性最后都会体现在BeanDefinition中。如:

**XML-bean ** BeanDefinition
class beanClassName
scope scope
lazy-init lazyInit
constructor-arg ConstructorArgument
property MutablePropertyValues
factory-method factoryMethodName
destroy-method
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值