加入ehcache后,系统出现内存泄漏,解决办法

最近在系统中,加入缓存ehcache,但发现,每隔一天,服务器就会报出内存溢出。
问题严重,后来在网上查资料发现,一篇解释的网文:

spring中的提供了一个名为org.springframework.web.util.IntrospectorCleanupListener的监听器。它主要负责
处理由 JavaBeans  Introspector的使用而引起的缓冲泄露。spring中对它的描述如下:
 
它是一个在web应用关闭的时候,清除JavaBeans Introspector的监听器.在web.xml中注册这个listener.
可以保证在web 应用关闭的时候释放与掉这个web 应用相关的class loader 和由它管理的类
 
如果你使用了JavaBeans Introspector来分析应用中的类,Introspector 缓冲中会保留这些类的引用.
结果在你的应用关闭的时候,这些类以及web 应用相关的class loader没有被垃圾回收.

解决办法,就是在web.xml中加入:
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>

问题解决,再也没有报内存泄漏了。

posted @ 2020-03-29 19:17  技术研究与问题解决  阅读(1658)  评论(0编辑  收藏  举报