Spring Ioc之BeanFactory

     IoC(Inversion of Control),即所謂的控制反轉,就是應用自己不負責依賴對象的建立及維護, 依賴對象的建立及維護是由外部容器(BeanFactory)負責的。web

     Spring經過配置文件(或者註解、JavaConfig)描述Bean和Bean之間的依賴關係,利用反射機制實例化Bean並創建Bean之間的依賴關係。Spring的IoC容器在完成這些底層工做的同時,還提供了Bean實例緩存、生命週期管理、Bean實例代理、事件發佈、資源裝載等高級服務。    緩存

    Spring IoC容器有兩個核心接口:BeanFactory和 ApplicationContext。當系統建立Spring IoC容器時,默認會預初始化全部的singleton Bean。也就是說,當IoC容器初始化完成後,容器中全部singleton Bean也實例化完成,這就意味着:系統前期建立IoC容器時將有較大的系統開銷,但一旦容器初始化完成,程序後面獲取singleton Bean實例時將擁有較好的性能。app

BeanFactory

   BeanFactory提供了IoC的基本功能,其默認實現是XmlBeanFactory。性能

            

ApplicationContext

    ApplicationContext是BeanFactory的子接口。BeanFactory提供基礎的IoC功能,ApplicationContext除了支持BeanFactory的所有功能外,提供了更多企業級開發的特性:spa

  • ApplicationContext繼承MessageSource接口,所以提供國際化支持。代理

  • 資源訪問。對象

  • 事件機制。      繼承

    ApplicationContext有如下幾種實現:
接口

  • AnnotationConfigApplicationContext—Loads a Spring application context from one or more Java-based configuration classes生命週期

  • AnnotationConfigWebApplicationContext—Loads a Spring web application context from one or more Java-based configuration classes

  • ClassPathXmlApplicationContext—Loads a context definition from one or more XML files located in the classpath, treating context-definition files as classpath resources

  • FileSystemXmlApplicationContext—Loads a context definition from one or more XML files in the filesystem

  • XmlWebApplicationContext—Loads context definitions from one or more XML files contained in a web application

WebApplicationContext

      WebApplicationContext是ApplicaitonContext的子接口,提供了Spring IoC對Web應用的支持。

相關文章
相關標籤/搜索