004 IOC---IOC容器
一.概述
在上一節之中,我們說到了IOC容器,并且說到了BeanFactory.
現在我們來看一下BeanFactory的定義.
我們可以看到BeanFactory定義的方法,核心的方法就是getBean()方法.
也就是說,spring封裝了創建Bean的全部過程,用戶只需要getBean()就可以了.
那么,之前我們也說到了spring通過配置信息知道用戶需要創建什么樣的Bean,那么我們后面的一個核心就是學會配置.
?
二 .ApplicationContext
Beanfactory實際上定義了IOC容器的基本形式,對于程序員來說,一般情況下是不會使用BeanFactory這樣底層的容器的.
spring為我們提供了ApplicationContext,含義是應用上下文.
上下文在編程中一般的含義就是包含當前運行信息的環境.因此,我們一般也將ApplicaitonContext視為IOC容器.
public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,MessageSource, ApplicationEventPublisher, ResourcePatternResolver {上面是ApplicationContext的定義,我們看到其實際上繼承了BeanFactory,同時還繼承了其它的接口.
如 MessageSource,ApplicationEventPublisher等接口,也就是說ApplicaitonContext具有了國際化和事件的能力,這些都是后面我們需要說的.
做為程序員,我們經常使用的都是該接口的子類:
如:
ClassPathXmlApplicationContext //從類路徑下加載配置信息FileSystemXmlApplicationContext //從文件系統加載配置信息
AnnotationConfigApplicationContext // 注解式環境
我們看到,子類只是獲取配置信息的方式不同,同時還提供了環境下一些特殊行為.
?
三 .BeanFactory和ApplicaitonContext
這是一個老生常談的問題,首先
[1]BeanFacoty是IOC的頂層接口,定義了IOC容器的一般行為.
[2]ApplicationContext繼承了BeanFactory,同時繼承了其它的接口,如時間,國際化等接口,也就是說擁有的能力比BeanFactory更強.
[3]BeanFactory是spring底層使用的,ApplicaitonContext才是程序員應該使用的接口.
[4]加載時機的問題,ApplicaitonContext會初始化所有的單例Bean,這個問題我們后面會重點說明.
轉載于:https://www.cnblogs.com/trekxu/p/9090674.html
總結
以上是生活随笔為你收集整理的004 IOC---IOC容器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysqldump逻辑备份与恢复
- 下一篇: 开发工程中遇到的BUG