欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

spring 监听器 IntrospectorCleanupListener简介

发布时间:2025/3/19 编程问答 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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;解决办法很简单,就是上面的那个配置。

 

  • 用法很简单,就是在web.xml中加入:    
  • <listener>    
  • <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>    
  • </listener>
  • 总结

    以上是生活随笔为你收集整理的spring 监听器 IntrospectorCleanupListener简介的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。