zoukankan      html  css  js  c++  java
  • Spring-如何绑定applicationContext与servletContext的生命周期

    一.applicationContext对象的生命周期

      1.applicationContext是容器对象,一创建时配置的所以对象都会被创建出来,我们希望是创建一份即可,而且在项目运行期间,类都能够在容器中获取到实例;

      2.applicationContext的生命周期希望是能够跟servletContext一样长,即随项目的创建而创建,关闭而摧毁;可以通过servletContext的监听器的生命周期方法中将applicationContext跟servletContext绑定在一起共生死

      3.既然applicationContext在servletContext的监听器的生命周期方法中,就可以获得到事件源即servletContext,进而可以获取到application域;

      4.获取application域有什么用?可以把applicationContext放到application域中,到时候想要获取容器对象时,只需要获取application域对象,根据键值对的方式取得容器对象

    二.Spring的ContextLoaderListener监听器

      1.根据上面的理论是可以将applicationContext与servletContext的生命周期绑定一起,不过spring已经写好了一个监听器用于容器对象和servletContext的绑定

      2.在web.xml中配置该监听器(得导一个web包),如图:

       3.配置完监听器后还不够,还得告诉它sping配置文件在哪,所以还得配置参数路径,参数名必须是contextConfigLocation,值表示到类路径下加载applicationConetxt.xml的文件,如图:

       4.要注意的是我们的spring配置文件的命名和位置是任意的,也就是如果你配置文件丢三落四的话,在web.xml里得配相应的路径,所以建议还是统一下路径在src的applicationContext.xml

    三.获取容器对象

      1.想要获取容器,按正常逻辑的话我们是得获取applicaiton域对象,根据键来获取;不过这个键特别长,所以spring特意提供了一个工具类和方法,只需要我们把servletContext对象给该方法,返回一个我们所需要的容器对象;如图:

    applicationContext与servletContext的生命周期

  • 相关阅读:
    let与const的区别
    IOS客户端UIwebview下web页面闪屏问题
    移动端click事件延迟300ms问题
    css3+visbibilty解决淡入淡出问题
    git学习之branch分支
    git学习之冲突解决办法
    webpack+vue-cli项目打包技巧
    一个高级PHP工程师所应该具备的
    多站点
    PHP error_reporting() 错误控制函数功能详解
  • 原文地址:https://www.cnblogs.com/ibcdwx/p/12760758.html
Copyright © 2011-2022 走看看