没有合适的资源?快使用搜索试试~ 我知道了~
Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 185 浏览量
2022-07-13
15:34:40
上传
评论
收藏 873KB DOC 举报
温馨提示
试读
13页
Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计.doc
资源推荐
资源详情
资源评论
Spring 框架系列(6) - Spring IOC 实现原理详解之 IOC 体系结构设计
在对 IoC 有了初步的认知后,我们开始对 IOC 的实现原理进行深入理解。本文将帮助你
站在设计者的角度去看 IOC 最顶层的结构设计。@pdai
Spring 框架系列(6) - Spring IOC 实现原理详解之 IOC 体系结构设计
站在设计者的角度考虑设计 IOC 容器
Spring IoC 的体系结构设计
BeanFactory 和 BeanRegistry:IOC 容器功能规范和 Bean 的注册
BeanFactory 定义了 IOC 容器基本功能规范?
BeanFactory 为何要定义这么多层次的接口?定义了哪些接口?
如何将 Bean 注册到 BeanFactory 中?BeanRegistry
BeanDefinition:各种 Bean 对象及其相互的关系
ApplicationContext:IOC 接口设计和实现
ApplicationContext 接口的设计
ApplicationContext 接口的实现
参考文章
更多文章
站在设计者的角度考虑设计 IOC 容器
如果让你来设计一个 IoC 容器,你会怎么设计?我们初步的通过这个问题,来帮助我们更
好的理解 IOC 的设计。
在设计时,首先需要考虑的是 IOC 容器的功能(输入和输出), 承接前面的文章,我们初
步的画出 IOC 容器的整体功能。
在此基础上,我们初步的去思考,如果作为一个 IOC 容器的设计者,主体上应该包含哪
几个部分:
加载 Bean 的配置(比如 xml 配置)
比如不同类型资源的加载,解析成生成统一 Bean 的定义
根据 Bean 的定义加载生成 Bean 的实例,并放置在 Bean 容器中
比如 Bean 的依赖注入,Bean 的嵌套,Bean 存放(缓存)等
除了基础 Bean 外,还有常规针对企业级业务的特别 Bean
比如国际化 Message,事件 Event 等生成特殊的类结构去支撑
对容器中的 Bean 提供统一的管理和调用
比如用工厂模式管理,提供方法根据名字/类的类型等从容器中获取 Bean
...
(pdai:这种思考的过程才是建设性的,知识体系的构建才是高效的)
Spring IoC 的体系结构设计
那么我们来看下 Spring 设计者是如何设计 IoC 并解决这些问题的。
BeanFactory 和 BeanRegistry:IOC 容器功能规范和 Bean 的注册
Spring Bean 的创建是典型的工厂模式,这一系列的 Bean 工厂,也即 IOC 容器为开发者管
理对象间的依赖关系提供了很多便利和基础服务,在 Spring 中有许多的 IOC 容器的实现供
用户选择和使用,这是 IOC 容器的基础;在顶层的结构设计主要围绕着 BeanFactory 和
xxxRegistry 进行:
BeanFactory: 工厂模式定义了 IOC 容器的基本功能规范
BeanRegistry: 向 IOC 容器手工注册 BeanDefinition 对象的方法
其相互关系如下:
我们再通过几个问题来辅助理解。
BeanFactory 定义了 IOC 容器基本功能规范?
BeanFactory 作为最顶层的一个接口类,它定义了 IOC 容器的基本功能规范,BeanFactory
有三个子类:ListableBeanFactory、HierarchicalBeanFactory 和 AutowireCapableBeanFactory。
我们看下 BeanFactory 接口:
public interface BeanFactory {
//用于取消引用实例并将其与 FactoryBean 创建的 bean 区分开来。例如,如果命名的
bean 是 FactoryBean,则获取将返回 Factory,而不是 Factory 返回的实例。
String FACTORY_BEAN_PREFIX = “&”;
//根据 bean 的名字和 Class 类型等来得到 bean 实例
剩余12页未读,继续阅读
资源评论
书博教育
- 粉丝: 1
- 资源: 2837
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功