文章字数:420,阅读全文大约需要1分钟
Spring
最基本的功能就是容器,容器的核心功能是IOC
控制反转。将类的创建、装配、销毁交由容器管理。BeanFacotry
和ApplicationContext
两个接口是Spring
最核心的接口,其中ApplicationContext
是BeanFactory
的子接口。二者都可以作为容器使用。
关系
ApplicationContext
是BeanFactory
的拓展接口。BeanFactory
一般称为IOC
容器,而ApplicationContext
称为应用上下文。BeanFactory
提供了最基本的容器管理功能,ApplicationContext
提供更多服务,如解析配置文本信息等。一般使用ApplicationContext
。
BeanFactory
主要功能是装配,创建,管理Bean。Spring ICO
容器的实现本质上是BeanFactory
,但是真正可以单独使用的容器还是DefaultListableBeanFactory
(实现类)
BeanFactory
是容器的根接口,主要方法是getBean(String beanName)
直接子接口
HierarchicalBeanFactory
:提供父容器的访问功能ListableBeanFactory
:提供批量获取Bean
的方法AutowireCapableBeanFactory
:增加对已存在的实例的管理
ConfigurableBeanFactory
主要单例bean的注册,生成实例,以及统计单例beanConfigurableListableBeanFactory
继承了上述的所有接口,增加了其他功能:比如类加载器,类型转化,属性编辑器,BeanPostProcessor,作用域,bean定义,处理bean依赖关系, bean如何销毁…实现类
DefaultListableBeanFactory
实现了ConfigurableListableBeanFactory,实现上述BeanFactory所有功能。它还可以注册BeanDefinition
ApplicationContext
应用上下文,继承了
BeanFactory
接口拥有更多的功能。启动时就可以加载所有的Bean
,也可以延迟加载。
- 国际化(MessageSource)
- 资源访问(ResourceLoader)
- 载入多个上下文
- 消息发送响应机制(ApplicationEventPublisher)
- aop
web端使用ApplicationContext
多一点