日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

BeanFactory與ApplicationContext的區別

作者:l1050188952 更新時間: 2022-09-25 編程語言

首先,BeanFactory與ApplicationContext是spring的兩大核心接口,都可以當做spring的容器。

BeanFactory 是 Spring 框架的基礎設施,面向 Spring 本身

ApplicationContext 面向使用Spring 框架的開發者,?ApplicationContext 使用的“場合”較多

一、功能上的區別

BeanFactory是Spring中最底層的接口,是IOC的核心,其功能包含了各種Bean的定義、加載、實例化、依賴注入和生命周期的管理。是IOC最基本的功能。

ApplicationContext接口是BeanFactory的子類,具有BeanFactory所有的功能,同時繼承了MessageSource,所以提供了更完整的框架功能,支持國際化、資源文件訪問、載入多個上下文配置文件,使得每一個上下文都專注于一個特定層次,提供在監聽器中注冊bean事件。

二、加載方式的區別

BeanFactory是延時加載,也就是說在容器啟動時不會注入bean,而是在需要使用bean的時候,才會對該bean進行加載實例化。

ApplicationContext 是在容器啟動的時候,一次性創建所有的bean,所以運行的時候速度相對BeanFactory比較快。

*因為加載方式的不同,導致BeanFactory無法提前發現spring存在的配置問題。(如果bean的某個屬性沒有注入,BeanFactory加載不會拋出異常,直至第一次調用getBean()方法時才會拋出異常。)但是ApplicationContext 在容器啟動時就可以發現spring存在的配置問題,因為他是一次性加載的,有利于檢測依賴屬性是否注入(也因為其一次性加載的原因,導致占用內存空間,當Bean較多時,影響程序啟動的速度)。

三、創建方式的區別

BeanFactory是以編程的方式創建的。

ApplicationContext 是以聲明的方式創建的。

四、注冊方式的區別

BeanFactory和ApplicationContext都支持BeanPostProcessorBeanFactoryPostProcessor的使用

BeanFactory是需要手動注冊的。

ApplicationContext 是自動注冊的。

原文鏈接:https://blog.csdn.net/l1050188952/article/details/125190955

欄目分類
最近更新