spring ioc设计之BeanFactory接口系统解析
来源:互联网 发布:购买的域名如何使用 编辑:程序博客网 时间:2024/06/05 09:31
1.从接口BeanFactory到HierarchicalBeanFactory,再到ConfigurableBeanFactory,是一条主要的BeanFactory设计路径,在这条接口设计陆军
中,BeanFactory定义了基本的ioc容器规范,在这个接口定义中,包括了getBean()这样的ioc容器的基本方法(通过这个方法可以从容器中取得
Bean)。而在hiberarchialBeanFactory接口在继承了BeanFactory的基本接口之后,增加了getParantBeanFactory的接口功能,使得
BeanFacotry具备了双亲ioc容器的管理功能,在接下来的ConfigurableBeanFacotry接口中,主要定义了一些对BeanFactory的配置功能,比
如通过setParentBeanFactory()设置双清容器,通过addBeanPostProcessor()配置Bean后置处理器,等等,通过这些接口设计的叠加,定
义了BeanFactory就是简单的ioc容器的基本功能
2.第二条接口设计主线是,以ApplicationContext应用上下文接口为核心的接口设计,这里面主要设计接口有,从BeanFactory到
ListableBeanFactory,再到ApplicationContext,再到我们日常使用的webApplicationContext或者ConfigurableApplicationContext接口。
我们常用的应用上下文基本上都是ConfigurationAplicationContext或者WebApplicationContext的实现,在这个接口体系
中,ListableBeanFactory和HierarchicalBeanFactroy两个接口,连接BeanFactory接口定义和ApplicationConext应用上下文的接口定义。在
ListableBeanFactory接口中,细化了许多BeanFactory接口的功能,比如定义了getBeanDefinitaionNames()接口方法,对于
HierarchicalBeanFactory接口,我们在前文中已经提到过了,对于ApplcationContext接口,它用通过基础
MessageSoruce,ResourceLoader.applicationEventPublisther接口,在BeanFactory简单ioc容器的基础上添加了许多对高级容器的特性的支
持
3.这里涉及的是主要接口关系,而具体的ioc容器都是在这个接口体系下实现了,比如DefaultListableBeanFactory,这个基本的ioc容器的实现就
是实现了Configurable-BeanFactory,都是在DefaultListableBeanFactory的基础上做扩展的,同样的ApplicationContext的实现也是如此
4.这个接口系统是以BeanFactory和ApplicationContext为核心的,而BeanFactory又是ioc容器的最基本的接口,在ApplicationContext的设计
中,一方面,可以看到它继承了BeanFactory接口体系中的ListableBeanFactory,AutowireCapableBeanFactory/HierarchicalBeanFactory等
BeanFactory的接口,具备了BeanFactory ioc容器的基本功能,另一个方面,通过继承
MessageSoruce,ResourceLoader,ApplicatioNEventPublisher这些接口,GBeanFactory为ApplicationContext赋予了更加高级的ioc容器特性,
对于applixcationContext而言,为了在Web环境中使用它,还设计了WebApplicationContext接口,而这个接口通过继承ThememSoruce接口来扩
展功能
- spring ioc设计之BeanFactory接口系统解析
- Spring框架之IoC容器—BeanFactory接口
- spring 核心与源码解析(1):IoC之BeanFactory
- Spring源码解析之IoC容器主要接口设计
- Spring IoC源码之BeanFactory
- Spring之BeanFactory解析
- 【SSH进阶之路】Spring的IOC逐层深入——源码解析之IoC的根本BeanFactory(五)
- 【SSH进阶之路】Spring的IOC逐层深入——源码解析之IoC的根本BeanFactory(五)
- 【SSH进阶之路】Spring的IOC逐层深入——源码解析之IoC的根本BeanFactory(五)
- 【SSH进阶之路】Spring的IOC逐层深入——源码解析之IoC的根本BeanFactory(五)
- Spring IOC BeanFactory(译)
- 底层解惑-spring的IOC相关接口:BeanFactory与FactoryBean
- Spring IoC源码解析(1):BeanFactory和ApplicationContext
- 一步一步学习Spring(2)-Spring IOC 之BeanFactory
- Spring源码学习之BeanFactory接口简述
- (1.0)Spring的IoC容器之BeanFactory
- Spring Ioc创建之BeanFactory创建源码分析
- Spring学习之IOC容器BeanFactory和ApplicationContext(三)
- 如何在VS2013上配置MPIR库(单个项目中)
- ios 10 开发-使用 Extension(Intents Extension和Intents UI Extens)创建SiriKit功能开发
- 安卓开发复习笔记——Fragment+FragmentTabHost组件(实现新浪微
- 分享下多年积累的对JAVA程序员成长之路的总结 --本文内容转自JAVA吧
- mysql 练习题
- spring ioc设计之BeanFactory接口系统解析
- SpringBoot拦截器的使用
- linux进程间通信之消息队列
- Android实践 -- 监听应用程序的安装、卸载
- 常见的join算法
- catmaid主分支笔记
- 什么是自适应学习(个性化学习)?
- 量化投资--量化干货分享
- SQLite3数据库在嵌入式应用之三: 以日志功能为例给出常用命令和C/C++常用API