bboss热部署应用资源销毁监听器ApplicationLifeListener使用说明

bboss热部署应用资源销毁监听器ApplicationLifeListener使用说明

实现类org.frameworkset.web.listener.ApplicationLifeListener实现javax.servlet.ServletContextListener接口,当应用卸载时用来清除框架和应用系统的内存缓存资源,有效规避应用热部署时内存泄露和线程泄露风险。
在web.xml开头处配置ApplicationLifeListener即可,配置方法如下:
<listener>
<description><![CDATA[应用销毁监听器:
在应用销毁之前调用系统shutdown 回调函数,前提是所有的shutdown回调函数
是通过以下方法注册:
BaseApplicationContext.addShutdownHook(new Runnable(){

@Override
public void run() {

try {
stop();


} catch (Throwable e) {
e.printStackTrace();
}
}});]]>

</description>
<listener-class>org.frameworkset.web.listener.ApplicationLifeListener</listener-class>
</listener>

ApplicationLifeListener组件在应用销毁时主动销毁bboss框架占用的系统资源,应用程序也可以通过org.frameworkset.spi.BaseApplicationContext组件提供的addShutdownHook方法添加自己的资源销毁回调程序:
public static void addShutdownHook(Runnable destroyVMHook,int proir)
public static void addShutdownHook(Runnable destroyVMHook)
两个方法参数说明:
destroyVMHook-为java.lang.Runnable接口实现类,用来执行具体的资源销毁逻辑
int proir-指定Runnable 的执行优先级,数值越大越先执行。

方法使用示例:
按默认添加顺序执行方式
BaseApplicationContext.addShutdownHook(new Runnable(){

@Override
public void run() {

try {
CacheUtil.destroy();


} catch (Throwable e) {
e.printStackTrace();
}
}});

指定执行优先级方式:
BaseApplicationContext.addShutdownHook(new Runnable(){

@Override
public void run() {

try {
CacheUtil.destroy();


} catch (Throwable e) {
e.printStackTrace();
}
}},100);


ApplicationLifeListener可有效解决bboss托管的quartz、activiti之类的框架导致应用热部署失败的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值