BeanFactory 和ApplicationContext 有什么区别?
BeanFactory 可以理解為含有bean 集合的工廠類。BeanFactory 包含了種bean 的定義,以便在接收到客戶端請求時(shí)將對應(yīng)的bean 實(shí)例化。
BeanFactory 還能在實(shí)例化對象的時(shí)生成協(xié)作類之間的關(guān)系。此舉將bean 自身與bean 客戶端的配置中解放出來。BeanFactory 還包含了bean 生命周期的控制,調(diào)用客戶端的初始化方法(initializationMethods)和銷毀方法(destruction Methods)。
從表面上看,ApplicationContext 如同bean factory 一樣具有bean 定義、bean 關(guān)聯(lián)關(guān)系的設(shè)置,根據(jù)請求分發(fā)bean 的功能。但ApplicationContext 在此基礎(chǔ)上還提供了其他的功能。
1.提供了支持國際化的文本消息
2.統(tǒng)一的資源文件讀取方式
3.已在監(jiān)聽器中注冊的bean 的事件
以下是三種較常見的ApplicationContext 實(shí)現(xiàn)方式:
1、ClassPathXmlApplicationContext:從classpath 的XML 配置文件中讀取上下文,并生成上下文定義。應(yīng)用程序上下文從程序環(huán)境變量中取得。
ApplicationContext context = new ClassPathXmlApplicationContext(“application.xml”);
2、FileSystemXmlApplicationContext :由文件系統(tǒng)中的XML 配置文件讀取上下文。
ApplicationContext context = new FileSystemXmlApplicationContext(“application.xml”);
3、XmlWebApplicationContext:由Web 應(yīng)用的XML 文件讀取上下文。
?
總結(jié)
以上是生活随笔為你收集整理的BeanFactory 和ApplicationContext 有什么区别?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Java 中依赖注入有哪些方式?
- 下一篇: Spring 提供几种配置方式来设置元数