`

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

阅读更多
今天遇到一个需求, 就是在停掉服务器的时候,希望停止一个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();
		}
	}
分享到:
评论

相关推荐

    spring容器初始化bean和销毁bean之前进行一些操作的方法

    1. 实现DisposableBean接口:该接口包含一个`destroy()`方法,当Bean准备销毁时,Spring会调用这个方法。与InitializingBean接口类似,使用这种方式可能会影响代码的可读性。 2. 使用`@PreDestroy`注解:这个注解...

    粗略实现spring创建bean

    - 销毁:当Spring容器关闭时,会调用Bean的销毁回调(如`DisposableBean`接口的`destroy()`方法或`@PreDestroy`注解的方法),执行清理工作。 2. Spring Bean 的配置方式 - XML配置:传统的Spring配置方式,通过`...

    Spring中Bean的生命周期 applicationcontext的应用(实现国际化,事件的传递)

    同样,实现`DisposableBean`接口的Bean会调用`destroy()`方法。 接下来,我们看看ApplicationContext的应用。ApplicationContext是Spring的核心接口,提供了比BeanFactory更高级的功能,如国际化支持和事件传播。 ...

    08-IoC配置-bean的生命周期控制

    Spring IOC容器可以管理Bean的生命周期,允许在Bean生命周期的特定点执行定制的任务。 Spring IOC容器对Bean的生命周期...在 Bean 的声明里设置 init-method 和 destroy-method 属性, 为 Bean 指定初始化和销毁方法。

    Spring bean初始化及销毁你必须要掌握的回调方法.docx

    类似于@PostConstruct,@PreDestroy是Java的JSR-250规范的一部分,用于标记一个方法,在Bean即将被销毁之前调用。 2. **DisposableBean接口** 如果Bean实现了DisposableBean接口,那么它必须重写`destroy()`方法...

    Spring Bean生命周期.pdf

    最后,在Spring容器关闭时,会调用实现DisposableBean接口的destroy方法来销毁Bean。 Spring Bean生命周期的管理让开发者能够精确控制Bean的创建和销毁过程,从而满足不同场景下的需求。开发者可以通过实现这些扩展...

    Spring框架中Bean的生命周期 Spring中Bean有几种作用域

    - `DisposableBean`接口:实现此接口的Bean,其`destroy()`方法会在销毁时被调用。 - `destroy-method`属性:与`init-method`类似,此处指定的方法会在Bean销毁前执行。 接下来,我们讨论Spring中Bean的几种作用...

    基于java的企业级应用开发:Bean的生命周期.ppt

    - BeanPostProcessor接口的`postProcessBeforeInitialization()`方法在Bean初始化之前调用,可以用于预处理,例如AOP代理的实现。 - 同样,`postProcessAfterInitialization()`方法在初始化完成后调用,为Bean的...

    bean的生命周期1

    同样,如果实现了`DisposableBean`接口,那么Bean需要提供一个`destroy()`方法,它会在Bean销毁之前被调用。这是Spring对那些没有定义初始化和销毁方法的Bean提供的一种回调机制。 3. **使用JSR250注解**: Java...

    如何检测Unity3D中的Gameobject的destroy事件来触发其他操作?2

    总结来说,要检测Unity3D中Gameobject的destroy事件并触发其他操作,你需要在脚本中实现`OnDestroy()`方法,并在此处编写你想要执行的代码。同时,为了进行碰撞检测,可以添加`Rigidbody`组件并利用碰撞回调函数。...

    spring bean life cycle

    5. **销毁**:当Spring容器关闭时,或Bean的`destroy-method`属性指定的方法,或实现了`DisposableBean`接口的`destroy()`方法会被调用,进行清理工作。同样,`@PreDestroy`注解的方法也会在这个阶段执行。 在...

    Spring的bean生命周期

    3. **初始化**:初始化阶段,Spring允许开发者定义初始化方法,如通过@Bean的initMethod属性指定,或者在Bean实现InitializingBean接口并重写afterPropertiesSet()方法。此外,还可以使用@PostConstruct注解标记的...

    SSH笔记-IOC容器中 Bean 的生命周期

    6. **销毁处理**:当Spring容器关闭时,它会调用每个可销毁Bean的`destroy()`方法,或者如果在Bean定义中指定了`destroy-method`,则调用该指定的方法。同样,`BeanPostProcessor`的`postProcessBeforeDestruction()...

    spring bean的生命周期测试代码

    4. **容器回调**:在Bean初始化之后,Spring容器可能会调用自己的回调方法,如`BeanPostProcessor`接口实现的`postProcessBeforeInitialization()`和`postProcessAfterInitialization()`方法,允许自定义逻辑进一步...

    Spring Bean 加载顺序 .

    对于Singleton Bean,Spring在容器关闭时会调用`@PreDestroy`注解的方法和实现DisposableBean接口的`destroy()`方法。对于Prototype作用域的Bean,Spring不会自动管理销毁,需要由用户负责。 在实际应用中,理解...

    spring的bean加载顺序样例项目

    - 对于单例Bean,Spring容器在关闭时会调用`destroy-method`属性指定的方法或带有`@PreDestroy`注解的方法进行清理工作。对于非单例Bean,通常不进行销毁操作。 7. **生命周期回调** - Spring提供了一些回调接口...

    Spring Bean生命周期&BeanDefinitions1

    3. **Bean接口回调**:如果Bean实现了特定的接口,如`BeanNameAware`、`BeanFactoryAware`或`ApplicationContextAware`,Spring会在适当的时候调用对应的回调方法。这些接口允许Bean获取其ID、BeanFactory引用或...

    Spring中与Bean相关的接口

    而实现了`DisposableBean`的Bean会在容器关闭时调用`destroy()`方法,执行清理工作。然而,这两种接口的方法命名约定可能会导致代码过于依赖Spring,因此Spring 4.0引入了`@PostConstruct`和`@PreDestroy`注解作为...

    Spring管理的Bean的生命周期

    2. **DisposableBean接口**:Bean如果实现了此接口,那么`destroy()`方法会在容器关闭时被调用。 另外,Spring容器有两种模式来管理Bean的生命周期:单例(Singleton)和原型(Prototype)。单例Bean在整个容器中...

    Spring Bean 的生命周期.docx

    4. DisposableBean:当Spring容器关闭时,会调用`destroy`方法,执行Bean的清理工作。 除此之外,还有两个容器级别的接口,主要用于Bean的实例化前后处理: 1. InstantiationAwareBeanPostProcessorAdapter:这是...

Global site tag (gtag.js) - Google Analytics