spring IOC容器的初始化和依赖注入
来源:互联网 发布:icloud删除的数据恢复 编辑:程序博客网 时间:2024/06/06 02:28
Spring两大IOC容器:BeanFactory 与 ApplicationContext(应用上下文)
两者区别
1.两者都是通过xml配置文件加载bean;
2.BeanFactory 采用了工厂模式,ApplicationContext是基于BeanFactory 之上,但是提供了更多功能,如国际化(I18N)支持、从属性文件读取文本信息、向注册为监听器的Bean发送事件等;
3.BeanFactory 延迟加载所有Bean,只有当你使用到的时候才对Bean实例化;
4. ApplicationContext 默认加载所有Bean(单例),所以,在内存占用上后者比前者大
IOC容器的初始化与依赖注入(流程图)
控制反转(IOC)、依赖注入(DI)
控制反转:利用反射技术(Class加载器加载对象,有三种方式),将对象创建权利转移给容器(Spring容器负责利用反射创建对象,然后实例化),一般结合配置文件,读取根据配置文件创建对象。
依赖注入:在spring容器中已经加载好实例了,所以在一个对象中想进行实例加载的时候,不需要通过new实例化一个对象,Spring IOC容器会主动的将你配置好的类进行注入(构造器注入、setter注入)该对象实例(注解)
关系图(图为个人理解)
最后补充一下:Bean在Spring容器中的生命周期(涉及到Spring容器的底层代码,这里只列出大概流程走向)
实例化——>设置属性——>设置Bean名称——>预处理(在初始化之前)——>初始化Bean——>预处理(在初始化之后)——>Bean已经准备好——>销毁
对应上:
Spring实例化Bean——>Spring注入Bean属性——>调用BeanNameAware的SetBeanName()方法——>调用BeanPostProcessor的预初始方法——>调用InitializingBean的AfterPropertiesSet()方法——>调用BeanPostProcessor的后初始化方法——>Bean可以使用——>(容器关闭)调用DisposableBean的destroy()方法
附上相关博文:
IOC与DI的理解:http://blog.csdn.net/bestone0213/article/details/47424255
spring IOC整体流程:http://blog.csdn.net/zly9923218/article/details/51299515
今天的博文就写到这,学无止境,生生不息。
- spring IOC容器的初始化和依赖注入
- spring的IoC初始化和依赖注入
- Spring容器的控制反转(IOC)和依赖注入(DI)
- spring IOC容器初始化和注入
- Spring的IOC容器—依赖注入
- Spring Ioc容器依赖注入
- Spring源码学习IOC(5):IOC容器的依赖注入
- IOC容器的初始化与依赖注入过程
- IOC容器的依赖注入
- IOC容器的依赖注入
- spring容器中的依赖注入和ioc那些事
- spring技术内幕5-IoC容器的依赖注入
- Spring:源码解读(IOC容器的依赖注入)
- Spring IOC容器的依赖注入(源码角度)
- spring技术内幕笔记:IoC容器的依赖注入
- Spring框架学习【IoC容器依赖注入】
- Spring的依赖注入IoC
- Spring ioc 的依赖注入
- 关于操作系统的几个重要概念(一)
- ABP入门系列(13)——Redis缓存用起来
- 题目1003:A+B
- 二维数组的有关指针
- ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS component
- spring IOC容器的初始化和依赖注入
- 学生信息管理系统控制台的实现
- java菜单
- html字符串引用单引号、双引号
- 先锋机器人学习笔记_1-8 Config Client相关的类与例程
- 光照不均去背景方法尝试
- android M 如何获取设置应用通知开关状态
- Pascal's Triangle
- opencv Mat图像显示在MFC控件上,亲测有效。为原作者点赞!