• Spring IoC容器简介说明(BeanFactory和ApplicationContext)


    转自:

    Spring IoC容器简介说明(BeanFactory和ApplicationContext)

    下文笔者讲述Spring IoC容器的简介(BeanFactory和ApplicationContext)说明,如下所示

    IoC简介

    IoC:
      指java开发中
      实例的创建不再由调用者管理
      而是由Spring容器创建和管理
      Spring容器会负责控制程序之间的关系
        而不是由程序代码直接控制
      即:Spring的控制权由java代码转移到Spring容器中
      这种控制的转变,我们称之为“控制反转”IOC 
    

    IOC容器实现类简介

    Spring的IOC容器
       分别为BeanFactory 和 ApplicationContext
    

    BeanFactory

    BeanFactory:
       是SpringIOC容器的顶级接口
       在org.springframework.beans.facytory.BeanFactory 接口定义
       对外提供完整IoC服务支持
    BeanFactory是一个管理Bean工厂
       它主要负责初始化各种 Bean 并调用它们的生命周期方法。
    
    BeanFactory接口有多个实现类
       如:org.springframework.beans.factory.xml.XmlBeanFactory,此实现类是由XML配置文件中定义装配Bean
    

    例:
    BeanFactory定义

    BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource("E://applicationContext.xml"));
    

    ApplicationContext简介

    ApplicationContext是BeanFactory子接口
       称之为应用上下文
     该接口的全路径为org.springframework.context.ApplicationContext
     它提供BeanFactory所有功能,还添加了对 i18n(国际化)、资源访问、事件传播等方面的良好支持。
    

    ApplicationContext接口常见实现类

    实现类1:
      ClassPathXmlApplicationContext
      该实现类从类路径ClassPath中寻找指定XML配置文件,
      找到并装载完成ApplicationContext实例化工作
    
    例:
      ApplicationContext applicationContext = new ClassPathXmlApplicationContext(String configLocation);
     
    实现类2:
      FileSystemXmlApplicationContext
      该实现类从指定的文件系统路径中寻找指定XML配置文件
      找到并装载完成ApplicationContext实例化工作
    
     例:
      ApplicationContext applicationContext = new FileSystemXmlApplicationContext(String configLocation);
    
    FileSystemXmlApplicationContext和ClassPathXmlApplicationContext区别是
        在读取 Spring 的配置文件时,FileSystemXmlApplicationContext 不再从类路径中读取配置文件,而通过参数指定配置文件的位置
        它可以获取类路径之外的资源,如"D:/workspaces/applicationContext.xml"
     
    实际的Java项目中,
      会采用通过ClassPathXmlApplicationContext类实例化ApplicationContext容器的方式
      而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器完成
      Web服务器实例化ApplicationContext 容器通常使用基于ContextLoaderListener实现的方式
      只需要在web.xml中添加如下代码:
    
    
    
        contextConfigLocation
        
        
            classpath:spring/applicationContext.xml
        
    
    
    
        
            org.springframework.web.context.ContextLoaderListener
        
    
    
    注意事项:
        1.BeanFactory和ApplicationContext通过XML配置文件加载Bean
        2.BeanFactory和ApplicationContext的区别:
    	   当Bean某一个属性没有注入,则使用 BeanFacotry 加载后,在第一次调用getBean()方法时会抛出异常
           ApplicationContext则在初始化时自检,这样有利于检查所依赖的属性是否注入
    	在日常开发中,必须建议使用ApplicationContext容器,当然如果系统资源较少时,则建议使用BeanFactory容器
    
  • 相关阅读:
    每日优鲜深陷“破产风波”,生鲜电商路在何方?
    牛牛的等差数列(思维 + 线段树)
    c# 操作ftp服务器文件
    docker 知识仓库
    vue 使用mapbox对当前行政区划进行反选遮罩
    Go 语言学习总结(9)—— Go 与 Java 全面对比总结
    职场成长的三种方式
    美国服务器:全面剖析其主要优点与潜在缺点
    Apache HTTPD (CVE-2017-15715)换行解析漏洞复现
    vSphere6.7创建Windows Server 2016虚拟机及磁盘扩容
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127565804