天天看點

Spring中BeanFactory和 ApplicationContext 的差別以及常用實作類

一、spring 中工廠的類結構圖

應用啟動時,工廠幫我們建立對象并放到一個map容器中。

當需要使用對象的時候,工廠幫我們從map容器中拿出來。

因為要經常取對象,是以是放在map容器中,而不是list容器中。

Spring中BeanFactory和 ApplicationContext 的差別以及常用實作類

二、BeanFactory和 ApplicationContext 的差別

1.BeanFactory 是 Spring 容器中的頂層接口。

ApplicationContext 是它的子接口。

2.BeanFactory 和 ApplicationContext 建立對象的時間點不一樣:

ApplicationContext:隻要一讀取配置檔案,預設情況下就會建立對象。

BeanFactory:什麼使用什麼時候建立對象。

三、常用實作類

ClassPathXmlApplicationContext:

它是從類的根路徑下加載配置檔案(推薦使用這種)

FileSystemXmlApplicationContext:

它是從磁盤路徑上加載配置檔案,配置檔案可以在磁盤的任意位置。

AnnotationConfigApplicationContext:

當我們使用注解配置容器對象時,需要使用此類來建立 spring 容器。它用來讀取注解。