如何在关闭web服务时进行一些清理操作(Spring mvc)

背景

目前正在替一家500强企业开发系统,因为系统众多所以他们使用ESB对各个系统之间的服务进行管理,同样也要求我们的系统进行对接。要求在我们的系统启动时进行注册,在系统关闭时进行注销。根据要求同事写了一个serverlet在系统启动的时候进行注册操作,但是不知道在系统关闭时进行相应的操作。

解决方法

因为项目使用spring mvc 项目,所以我知道可以通过spring的监听器完成相应的工作。

步骤1:实现ApplicationListener 

package com.efuture.vpm.util;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextClosedEvent;

public class ApplicationEventListener implements ApplicationListener {
protected final Log log = LogFactory.getLog(getClass());
	public void onApplicationEvent(ApplicationEvent event) {

		 //容器关闭时触发的事件
		if(event instanceof ContextClosedEvent ){

			log.info("application close       1111111111111111111111111111111111111     ");
		}else{
			log.info("application ohter event       222222222222222222222222222222222222222     ");

		}

	}
}

步骤2: 配置

 <!-- 应用级的监听器 (注销esb) -->
     <bean id="sytemEventListener" class="com.efuture.vpm.util.ApplicationEventListener"></bean>
    

备注:

关闭事件的触发仅限于正常方式关闭服务器,而不是直接关闭 console窗口这样的方式。

时间: 2024-08-08 14:07:01

如何在关闭web服务时进行一些清理操作(Spring mvc)的相关文章

优雅关闭web服务的方式

优雅关闭web服务 DBHelper, err = gorm.Open("mysql", "root:[email protected](115.159.59.129:3306)/test?charset=utf8&parseTime=True&loc=Local") if err != nil { log.Fatal("数据库初始化错误", err) //log.Fatal输出日志并且退出主程序 return } 优雅的关闭se

使用浏览器测试Web服务时出现提示“The test form is only available for requests from the local machine.”的解决办法

在Web服务项目中的Web.config文件中添加如下配置即可: <system.web>    <webServices>        <protocols>          <add name="HttpGet"/>          <add name="HttpPost"/>        </protocols>    </webServices></system

web开发实践中遇到的问题--spring mvc中文乱码

jsp页面中文输入,到controller乱码,这时候需要设置的是在web.xml文件中添加一个编码的过滤器(filter)将编码统一为UTF-8.代码: <!-- jsp提交中文表单,controller中解决中文乱码问题--> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.Char

Heartbeat实现web服务高可用

在之前的部署过程中,成功的部署并配置了heartbeat,而且也能实现两节点之间VIP的高可用,这里来配置并实现httpd服务的高可用. 一.安装Apache 两台heartbeat节点服务器都先停止heartbeat服务. /etc/init.d/heartbeat stop 分别在heartbeat01和heartbeat02上安装httpd服务 yum -y install httpd 分别在两个节点上执行 echo $HOSTNAME >>/var/www/html/index.htm

利用OpenShift托管Node.js Web服务进行微信公众号开发

最近写了一个微信的翻译机器人.用户只要关注该微信号,发送英文的消息,就能收到中文翻译的回复.后台是用Node.js写的,托管在OpenShift的Paas平台上.翻译过程实际上是调用微软的Bing translation API做的,代码中用到了alexu84的bing-translate和JacksonTian的wechat这两个npm模块.下面把做的过程详细说一下. 1. 微信公众号开发 首先是要到https://mp.weixin.qq.com 申请一个公众号,并申请成为开发者.目前个人只

常见的三种Web服务架构

常见的三种Web服务架构 转自http://www.cnblogs.com/bvbook/archive/2008/12/24/1360942.html 相互竞争的服务架构 The Competing Architectures 我们已经给出了“不同Web服务会有不同做法”的两个主要问题,现在要据此对不同风格的Web服务进行分类了.根据我的研究,常见的Web服务架构主要有三种:REST式架构.RPC式架构和REST-RPC混合架构.下面依次对它们进行介绍. REST式.面向资源的架构 RESTf

Python Web 服务开发者: 第 1 部分

Python Web 服务开发者: 第 1 部分 Python Web 服务世界 Python 的座右铭一向是“装备齐全”,这是指在安装该语言时会附带一大套标准库和功能程序.本文概述了在 Python 中开发 Web 服务时可以使用的工具和功能程序.这些工具和功能程序包括内置的 Python 功能和第三方开放源代码的工具 0 评论: Mike Olson([email protected])Fourthought, Inc. Uche Ogbuji([email protected])Fourt

使用spring mvc或者resteasy构建restful服务

看到最近一个项目里用resteasy来构建restful接口,有点不明白,不少Spring mvc4.0以后也可以很方面的实现restful服务吗,为啥还要在Spring MVC的项目里还引入resteasy?估计还是开发人员根据自己技术能力自由选择的吧,毕竟resteasy引入也很简单.为了解惑,了解了一下resteasy. resteasy 是 jboss的一个开源restful service实现参考.本文假设读者熟悉spring mvc,但是不了解或者没有使用过resteasy的用户.

spring mvc构建WEB应用程序入门例子

在使用spring mvc 构建web应用程序之前,需要了解spring mvc 的请求过程是怎样的,然后记录下如何搭建一个超简单的spring mvc例子. 1) spring mvc的请求经历 请求由DispatcherServlet分配给控制器(根据处理器映射),在控制器完成处理后,请求会被发送到一个视图(根据viewController解析逻辑视图) 来呈现输出结果. 整理成下图所示: 2)搭建一个简单的spring mvc例子 ①创建一个maven工程,其中pom中要有spring相关