spring 监听器 IntrospectorCleanupListener简介
轉自:https://blog.csdn.net/ywb201314/article/details/51144256
其中JavaBeans Introspector是一個類,位置在Java.bean.Introspector,這個類的用途是發現java類是否符合javaBean規范,也就是這個類是不是javabean。具體用法可以參照jdk文檔;
上面的意思就是,如果有的框架或者程序用到了JavaBeans Introspector了,那么就啟用了一個系統級別的緩存,這個緩存會存放一些曾加載并分析過的javabean的引用,當web服務器關閉的時候,由于這個緩存中存放著這些javabean的引用,所以垃圾回收器不能對web容器中的javaBean對象進行回收,導致內存越來越大。
spring提供的org.springframework.web.util.IntrospectorCleanupListener就解決了這個問題,他會在web服務器停止的時候,清理一下這個Introspector緩存。使那些javabean能被垃圾回收器正確回收。
spring不會出現這種問題,因為spring在加載并分析完一個類之后會馬上刷新JavaBeans Introspector緩存,這樣就保證了spring不會出現這種內存泄漏的問題。
但是有很多程序和框架在使用了JavaBeans Introspector之后,都沒有進行清理工作,比如quartz、struts;解決辦法很簡單,就是上面的那個配置。
?
總結
以上是生活随笔為你收集整理的spring 监听器 IntrospectorCleanupListener简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vuejs -- 如何使一个自定义函数在
- 下一篇: 常用SQL Server 小语法、函数