《Spring揭秘》第四章 读书笔记 —— Spring的IoC容器之BeanFactory
来源:互联网 发布:深圳市橙子网络 编辑:程序博客网 时间:2024/06/08 02:08
在进入BeanFactory之前,还是先说说IoC容器和IoC Service Provider之间的关系
Spring提供了两个容器:正准备介绍的BeanFactory和ApplicationContext容器
- BeanFactory 基础类型IoC容器,提供完整的IoC服务支持,默认采用lazy-inti初始化方式
适用:资源有限、功能要求不是很严格 - ApplicationContext 在BeanFactory基础之上构建,提供高级特性:事件发布和国际化信息支持
两者准确的关系怎么样的呢:
准确的来说,BeanFactory真正能够改变的东西,就是之前我们想要获取某个对象的时候,是自己去创建,主动寻找获取;而BeanFactory可以将我们需要的依赖推送过来。
通常的话,会通过XML文件来实现这种依赖管理:
<beans> <bean id="djNewsProvider" class="..FXNewsProvider"> <constructor-arg index="0"> <ref bean="djNewsListener"/> </constructor-arg> <constructor-arg index="1"> <ref bean="djNewsPersister"/> </constructor-arg> </bean> ...</beans>
具体的实现:
ApplicationContext container = new ClassPathXmlApplicationContext("配置文件路径");FXNewsProvider newsProvider = (FXNewsProvider)container.getBean("djNewsProvider"); newsProvider.getAndPersistNews();
这里的调用是通过getBean()方法获取,从这里可以看出spring的具体怎么实现映射。
BeanFactory 只是一个接口,所以具体的使用中,需要使用一个具体实现类实现该接口进行Bean的管理。
可以通过图中的关系结构看出,虽然我们需要的对象都是属于BeanFactory的,实际上使用的对象是在BeanDefinitionRegistry中的,书中的比方就很恰当:BeanFactory相当于图书馆,虽然借书要进图书馆,但是书都放在书架上面,所以图中的BeanDefinitionRegistry就像是图书馆的书架。
Spring提供了org.springframework.beans.factory.support.PropertiesBeanDefinition-Reader类用于Properties格式配置文件的加载,所以提供好配置文件
文中有提到BeanFactory的对象注册和依赖绑定,直接编码格式,这种方式是经历了注册-构造-setter(),最终完成绑定;另一种方式就是基于注解的依赖注入。
0 0
- 《Spring揭秘》第四章 读书笔记 —— Spring的IoC容器之BeanFactory
- 【Spring揭秘】------ 第四章学习 Spring的IoC容器之BeanFactory 01
- 【Spring揭秘】------ 第四章学习 Spring的IoC容器之BeanFactory 02
- Spring揭秘(四)——Spring的IOC容器之BeanFactory
- 《Spring揭秘》第四章 读书笔记 —— BeanFactory的XML之旅
- Spring框架之IoC容器—BeanFactory接口
- 《Spring揭秘》第四章 读书笔记 —— 容器背后的秘密
- 《Spring揭秘》第二章 读书笔记 —— IoC的基本概念
- (1.0)Spring的IoC容器之BeanFactory
- Spring揭秘(五)——BeanFactory的XML之旅
- spring揭秘(二)——IoC容器的基本概念
- Spring--IoC--创建BeanFactory容器
- Spring揭秘(六)——Spring IoC容器ApplicationContext
- 《step1:tiny Spring IoC学习一》——最基本的容器BeanFactory
- Spring揭秘:第一章-第六章IOC与BeanFactory
- 《Spring揭秘》第三章 读书笔记 —— 掌控大局的IoC Service Provider
- Spring学习之IOC容器BeanFactory和ApplicationContext(三)
- Spring揭秘 读书笔记 七 BeanFactory的启动分析
- .Net 内存溢出(System.OutOfMemoryException)的常见情况和处理方式总结
- python 解决UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe9 in position 9: ordinal not in rang
- 怎么才能把ppt转换成word文档
- Java反射与内省(Introspector)
- yii2中公共控制器向公共模板传数据
- 《Spring揭秘》第四章 读书笔记 —— Spring的IoC容器之BeanFactory
- retrofit2+okhttp3图片上传及进度监听
- 常用正则表达式大全
- VMWARE虚拟机三种网络模式(BRIDGED,NAT,HOST-ONLY)区别详解
- STL---集合的运算
- codevs 1079 回家(最短路)
- Android平台AES对称加密踩过的坑
- vpn入门文章
- 导出excel 文档1