1. 程式人生 > >框架或者程式用了Introspector類導致的記憶體洩漏問題解決方案

框架或者程式用了Introspector類導致的記憶體洩漏問題解決方案

在web.xml檔案中加入如下配置:

<!-- 重新整理Introspector防止記憶體洩露 -->

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

備註:

JDK中的java.beans.Introspector類的用途是發現Java類是否符合JavaBean規範,

如果有的框架或程式用到了Introspector類,那麼就會啟用一個系統級別的快取,

此快取會存放一些曾載入並分析過的JavaBean的引用,

當Web伺服器關閉時,由於此快取中存放著這些JavaBean的引用,

所以垃圾回收器無法回收Web容器中的JavaBean物件,最後導致記憶體變大。

IntrospectorCleanupListener會在Web伺服器停止時清理Introspector快取,

使那些Javabean能被垃圾回收器正確回收,從而解決程式因為用了Introspector類而導致的記憶體洩漏問題。