zoukankan      html  css  js  c++  java
  • Spring中的ApplicationContext

    1、ApplicationContext应用程序上下文

    ApplicationContext是最常用的Spring ioc容器,他实现了很多接口:

    • BeanFactory:Spring 管理 Bean 的顶层接口,我们可以认为他是一个简易版的 Spring 容器。
    • ApplicationEventPublisher:用于封装事件发布功能的接口,向事件监听器(Listener)发送事件消息。
    • ResourceLoader:Spring 加载资源的顶层接口,用于从一个源加载资源文件。ApplicationContext 继承 ResourceLoader 的子类 ResourcePatternResolver,该接口是将 location 解析为 Resource 对象的策略接口。
    • MessageSource:解析 message 的策略接口,用不支撑国际化等功能。
    • EnvironmentCapable:用于获取 Environment 的接口。

    在这里插入图片描述

    2、常用实现类

    常用实现类也就是我们常用的容器:

    AnnotationConfigApplicationContext:通过配置类加载容器。
    
    ClassPathXmlApplicationContext :从class中加载xml配置容器
    
    FileSystemXmlApplicationContext:从文件系统中加载配置容器
    

    还有和web服务相关的容器:如XmlWebApplicationContext,看几个静态属性,很眼熟吧,SpringMvC

    public class XmlWebApplicationContext extends AbstractRefreshableWebApplicationContext {
        public static final String DEFAULT_CONFIG_LOCATION = "/WEB-INF/applicationContext.xml";
        public static final String DEFAULT_CONFIG_LOCATION_PREFIX = "/WEB-INF/";
        public static final String DEFAULT_CONFIG_LOCATION_SUFFIX = ".xml";
    
        ......
    }
    
    

    还有其他子类:

    AnnotationConfigWebApplicationContext :注解配置Web项目,新的SpringMVC使用可以去除其他如web.xml
    

    3、BeanFactary和ApplicationContext的区别

    beanFactory在对bean加载时是即用即加载。

    ApplicationContext则是在加载的时候,统一实例化所有Bean(懒加载、原型、抽象除外),在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误。
    BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用,但两者之间的区别是:BeanFactory需要手动注册,而ApplicationContext则是自动注册。

  • 相关阅读:
    算法第4章实践报告
    避免商品超卖的4种方案
    PHP 之获取Windows下CPU、内存的使用率
    XunSearch(讯搜)的使用教程步骤
    curl传递二维数组,打印没有数据,只显示Array
    使用Postfix和Dovecot收发电子邮件
    Mybatis中使用association进行关联的几种方式
    两个服务器之间文件互传
    php-fpm 高并发 参数调整
    高并发linux内核网络参数调优
  • 原文地址:https://www.cnblogs.com/cgl-dong/p/13829859.html
Copyright © 2011-2022 走看看