欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于实现在服务器停掉的时候调用bean的destroy方法

程序员文章站 2022-07-07 15:37:52
...
今天遇到一个需求, 就是在停掉服务器的时候,希望停止一个web service的服务, 通过spring实现很简单, 只需要bean继承DisposableBean就可以了, 代码如下:

package com.citi.risk.portal.util;

import org.springframework.beans.factory.DisposableBean;

import com.citi.icg.cs.es2.core.ESClient;

public class ESATEntitlementDestroyer implements DisposableBean{


	@Override
	public void destroy() throws Exception {
		 System.out.println("==================ESATEntitlementDestroyer.destory() was called.==================");  
		 try{
			 if(ESClient.isRunning())
				 ESClient.stop();
		 }catch(Exception se){
			 se.printStackTrace();
		 }
		
	}
}


xml配置就一行就可以了!
<bean id="esatTEntitlementDestroyer" class="com.citi.risk.portal.util.ESATEntitlementDestroyer" />


还有一个需求就是初始化bean的时候需要执行一段代码,  这个只需要配置文件中添加init-method属性就可以了!
<bean id="esatEntitlement" class="com.citi.risk.portal.util.ESATEntitlement"  init-method="init"/>


然后在类中实现init方法:
	public void init(){
		System.out.println("==================Start to initial ESATEntitlement to get IESService instance=============");
		try {
			if (!ESClient.isRunning())
				ESClient.start();
			esCitiriskRestrictedService = ESClient.getESService("citiriskrestricted");
			esCitiriskService = ESClient.getESService("citirisk");
		} catch (Exception e) {
			System.out.println("---ESClient is not run or down--- ");
			e.printStackTrace();
		}
	}