Spring学习(四)Spring中常用的容器-ApplicationContext

在Spring中我们经常使用另一种容器ApplicationContext,较之BeanFactory,它进一步扩展了BeanFactory基本容器的功能,包括BeanFactoryPostProcessor,BeanPostProcessor以及特殊类型bean自动识别。容器启动后Bean实例自动初始化、国际化支持、Bean容器内事件发布等。
常用的ApplicationContext实现类:
FilesSystemXmlApplicationContext:从文件系统加载bean定义及相关资源
ClassPathXmlApplication:从ClassPath 中的xml加载Bean定义及相关资源
XmlWebApplicationContext:专为Web程序定制的实现
一、统一加载策略
1、Resource接口可以根据资源存在的不同类型,不同场合进行访问。较为常用的有classPathResource,FileSystemResource,UrlResource
2、ResourceLoader用来定位和查找资源:默认实现类DefaultResourceLoader 及针对文件系统的FileSystemLoader[返回的也是FileSystemResouce]
3、ResourcePartternResolver扩展ResourceLoader,根据资源路径的匹配模式,可以批量获取Resource,常用的实现类PathMatchingResourcePatternResolver(在构造时需传入一个ResourceLoader,如不传入则采用默认的DefaultResourceLoader)
二、ApplicationContext
ApplicationContxet继承了ResourcePartternResolver接口,AbstractApplicationContext继承了DefaultResourceLoader ,ApplicationContext又将自己作为参数实现了ResourcePartternResolver批量获取资源的方法。因此ApplicationContext就是一个ResouceLoader(ResourcePatternResolver)
三、ApplicationContext事件发布_
Spring事件继承自java.util.EvenObject,spring提供了三种实现:
①ContextColosedEvent:容器在关闭时发布的事件类型
②ContextRefreshedEvent:容器在初始化或更新时发布的事件类型:web请求处理后发布的事件类型
③RequestHandledEvent:Web请求处理后发布的事件
当然,还可以自定义容器事件,只需自定义事件继承ApplicationContextEvent类,事件处理器实现ApplicationListener接口,并将它们注入到Spring容器中,使用容器的publishEvent方法进行发布

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.1 spring IoC容器和beans的简介 Spring 框架的最核心基础的功能是IoC(控制反转)容器,...
    simoscode阅读 11,717评论 2 22
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,212评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,178评论 6 342
  • Spring容器高层视图 Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相...
    Theriseof阅读 7,850评论 1 24
  • 计划是我们为了达成某个目标而设定的特定工作程序,一方面它使我们在达成这个目标上有明确的方法,另一方面也是驱动我们达...
    阔爸阅读 3,056评论 0 0

友情链接更多精彩内容