浅析ContextLoaderListener

大家可能对下面这段代码再熟悉不过了

  <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

没错,这就是在web应用加载完之前先加载ContextLoaderListener,然后通过这个类里面的某个方法去加载spring配置文件

下面我们新建一个自己的ContextLoaderListene

新建立一个java类型,继承ContextLoaderListener,然后实现他的两个主要的方法contextInitialized,contextDestroyed;在contextInitialized,contextDestroyed这两个方法里面你就可以做自己想做的事情了,然后再web.xml里面添加一个listener,将自己的class加进去即可

java代码如下:

 package com.software.aaa;

 import javax.servlet.ServletContextEvent;

 import org.springframework.web.context.ContextLoaderListener;

 public class Test extends ContextLoaderListener{

     @Override
public void contextInitialized(ServletContextEvent event) {
// TODO Auto-generated method stub
System.out.println("contextInitialized.............");
} @Override
public void contextDestroyed(ServletContextEvent event) {
// TODO Auto-generated method stub
System.out.println("contextDestroyed.............");
}
}

web.xml代码如下

   <listener>
<listener-class>com.software.aaa.Test</listener-class>
</listener>

在写的过程中我发现一个问题:contextDestroyed这个方法怎么都不会被调用,后来不小心重新启动项目,却意外的调用了此方法,甚是不解!!!

java web程序启动加载 ContextLoaderListener的更多相关文章

  1. java web项目启动加载顺序

    转载:https://www.cnblogs.com/writeLessDoMore/p/6935524.html web.xml加载过程(步骤):       1.启动WEB项目的时候,容器(如:T ...

  2. Java Web应用的加载过程

    在介绍Spring IoC和MVC的加载前,用这篇小文章简单地记录下,最简单的web应用的加载过程. 一.从最简单的web应用出发 使用Eclipse直接创建一个Dynamic Web Project ...

  3. web容器启动加载WebApplicationContext和初始化DispatcherServlet

    原文地址:http://blog.csdn.net/zghwaicsdn/article/details/51186915 ContextLoaderListener监听器,加载ROOT WebApp ...

  4. Spring的web应用启动加载数据字典方法

    在一个基于Spring的web项目中,当我们需要在应用启动时加载数据字典时,可写一个监听实现javax.servlet.ServletContextListener 实现其中的contextIniti ...

  5. IOS 应用程序启动加载过程(从点击图标到界面显示)

    今天帮同事解决问题的时候发现,程序BUG是由加载过程引起的.所以当局部代码没有问题,但是程序一运行却总不是我们想要结果的时候,我们应该想想是不是因为我们忽略了试图加载过程的原因.下面我们用一个例子来简 ...

  6. Android程序启动加载动画实现

    package com.example.bmob_test.ui;//程序启动动画,图片颜色由浅到深,方法一 import com.example.bmob_test.LogActivity; imp ...

  7. interface21 - web - ContextLoaderListener(Spring Web Application Context加载流程)

    前言 最近打算花点时间好好看看spring的源码,然而现在Spring的源码经过迭代的版本太多了,比较庞大,看起来比较累,所以准备从最初的版本(interface21)开始入手,仅用于学习,理解其设计 ...

  8. Java Web应用启动间隔执行的程序

    Reference:<Java定时器timer.schedule在Web中间隔执行任务和定时><[Java]Timer和TimerTask详解> 做了一个Demo,完成如下的功 ...

  9. java程序的加载过程

    昨天笔试阿里有个求java程序加载过程的题目很是复杂,回来研究了好久才有点明白,整理一下.原题代码如下,判断输出: public class StaticTest { public static in ...

随机推荐

  1. AngularJS - 路由 routing 基础示例

    AngularJS 路由 routing 能够从页面的一个视图跳转到另外一个视图,对单页面应用来讲是至关重要的.当应用变得越来越复杂时,我们需要一个合理的方式来管理用户在使用过程中看到的界面.Angu ...

  2. “Hello World!”团队第五周第五次会议

    博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.checkout&push代码 一.会议时间 2017年11月14日  ...

  3. 大学网站UI设计分析(以学校领导/历届领导为例)

    第一次的冲刺阶段让我过了一把PM的瘾,第一阶段的冲刺完成以后第一感觉就是PM不好当,在大学里做个课程设计当个PM相对而言还是比较容易的,但是我明白,当我们走向工作岗位以后,面临的情况会比学校的情况的复 ...

  4. struts2 action json(还有servlet的)

    http://yshjava.iteye.com/blog/1333104 留着 版权声明:本文为博主原创文章,未经博主允许不得转载.

  5. 周总结<4>

    经过了一周的学习,我们在html以及C语言方面又有的新的知识点的学习. html 自习表格,函数等 C语言 哈弗曼编码 Html案例: 一. <!DOCTYPE html PUBLIC &quo ...

  6. Tomcat配置 —— server.xml

    Tomcat的核心组件是servlet容器. Tomcat各个组件之间的嵌套关系 server.xml配置如下: <Server port="8005" shutdown=& ...

  7. 继承&成员函数&覆盖

    //成员函数. /* 当子父类中出现成员函数一模一样的情况,会运行子类的函数. 这种现象,称为覆盖操作.这时函数在子父类中的特性. 函数两个特性: 1,重载.同一个类中.overload 2,覆盖.子 ...

  8. css新增UI方案

    一.文本新增样式 opacity 不透明度 h1{ margin: 100px auto; opacity: 0.5; } </style> </head> <body& ...

  9. 【Mark】Android应用开发SharedPreferences存储数据的使用方法

    Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...

  10. HDU 2164 Rock, Paper, or Scissors?

    http://acm.hdu.edu.cn/showproblem.php?pid=2164 Problem Description Rock, Paper, Scissors is a two pl ...