一、spring 中工廠的類結構圖
應用啟動時,工廠幫我們建立對象并放到一個map容器中。
當需要使用對象的時候,工廠幫我們從map容器中拿出來。
因為要經常取對象,是以是放在map容器中,而不是list容器中。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP9E1T1kFROFza65UeNR1Y4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zROBlL1QDNzUzM0MjMwETMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
二、BeanFactory和 ApplicationContext 的差別
1.BeanFactory 是 Spring 容器中的頂層接口。
ApplicationContext 是它的子接口。
2.BeanFactory 和 ApplicationContext 建立對象的時間點不一樣:
ApplicationContext:隻要一讀取配置檔案,預設情況下就會建立對象。
BeanFactory:什麼使用什麼時候建立對象。
三、常用實作類
ClassPathXmlApplicationContext:
它是從類的根路徑下加載配置檔案(推薦使用這種)
FileSystemXmlApplicationContext:
它是從磁盤路徑上加載配置檔案,配置檔案可以在磁盤的任意位置。
AnnotationConfigApplicationContext:
當我們使用注解配置容器對象時,需要使用此類來建立 spring 容器。它用來讀取注解。