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应用的支持。

相关文章
相关标签/搜索