經典面試題-BeanFactory和ApplicationContext有什麼區別?

  • 2019 年 11 月 7 日
  • 筆記

版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/weixin_42528266/article/details/102902308

  • BeanFactory 可以理解為含有bean集合的工廠類。BeanFactory 包含了種bean的定義,以便在接收到客戶端請求時將對應的bean實例化。
  • BeanFactory還能在實例化對象的時生成協作類之間的關係。此舉將bean自身與bean客戶端的配置中解放出來。BeanFactory還包含了bean生命周期的控制,調用客戶端的初始化方法(initialization methods)和銷毀方法(destruction methods)。
  • 從表面上看,ApplicationContext如同BeanFactory 一樣具有bean定義、bean關聯關係的設置,根據請求分發bean的功能。但ApplicationContext在此基礎上還提供了其他的功能。
    • 1.提供了支持國際化的文本消息
    • 2.統一的資源文件讀取方式
    • 3.已在監聽器中註冊的bean的事件

以下是三種較常見的 ApplicationContext 實現方式:

  • 1、ClassPathXmlApplicationContext:從classpath的XML配置文件中讀取上下文,並生成上下文定義。應用程序上下文從程序環境變量中取得。
ApplicationContext context = new ClassPathXmlApplicationContext(「bean.xml」);
  • 2、FileSystemXmlApplicationContext :由文件系統中的XML配置文件讀取上下文。
ApplicationContext context = new FileSystemXmlApplicationContext(「bean.xml」);
  • 3、XmlWebApplicationContext:由Web應用的XML文件讀取上下文。