美文网首页
Spring学习(四)Spring中常用的容器-Applicat

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

作者: jjjjxd | 来源:发表于2018-06-03 17:36 被阅读0次

    在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方法进行发布

    相关文章

      网友评论

          本文标题:Spring学习(四)Spring中常用的容器-Applicat

          本文链接:https://www.haomeiwen.com/subject/nroajftx.html