04、IntrospectorCleanupListener

本文介绍了如何通过在web.xml中注册IntrospectorCleanupListener来解决Spring框架与非Spring托管的Bean(如Struts、quartz)整合时产生的内存泄漏问题。重点在于处理JavaBeanIntrospector使用的缓冲泄露,并确保在web应用关闭时释放相关类加载器和类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



解决Spring整合其他框架和类库(非Spring托管的Bean,如Struts、quartz)产生的单个内部查看泄露使得整个web应用的类加载器不能进行垃圾回收。

类路径:org.springframework.web.util.IntrospectorCleanupListener;

解决问题:处理由JavaBean Introspector使用而引起的缓冲泄露, 它是一个在web应用关闭时清除JavaBean Introspector的监听器;

使用方法:在web.xml中注册这个listener可以保证在web应用关闭的时候释放掉与这个web应用相关的class loader和由它管理的类;

<listener>
  <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>

源代码如下:
package  org.springframework.web.util;   
import  java.beans.Introspector;   
import  javax.servlet.ServletContextEvent;   
import  javax.servlet.ServletContextListener;   
  
public   class  IntrospectorCleanupListener  implements  ServletContextListener   {   
     public   void  contextInitialized(ServletContextEvent event)   {   
    }    
    
      public   void  contextDestroyed(ServletContextEvent event)   {   
        Introspector.flushCaches();   
    }    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值