美文网首页
Spring MVC 系列之IntrospectorCleanu

Spring MVC 系列之IntrospectorCleanu

作者: Jacky_2c9f | 来源:发表于2020-05-25 20:02 被阅读0次

这是Spring 框架的Listener 类:org.springframework.web.util.IntrospectorCleanupListener

此监听器主要是为了防止由java.beans.Introspector导致的内存泄漏问题。.

JDK中的java.beans.Introspector类是用于检查Java 类是否符合JavaBean规范。

注:javaBean是一种java语言写成的可重用组件(类),遵循以下规范:

1、类必须使用public修饰。

2、必须保证有公共无参数构造器。

3、包含了属性的操作方法(getter/setter)。

如果有的程序或框架用到该类,那么就会启用系统级别的缓存,此缓存会存放一些曾加载并分析过的JavaBean引用。当Web 服务器关闭后,由于此缓存还存放着这些对JavaBean的引用,导致GC没办法回收Web 容器中的JavaBean对象。久而久之内存占用就会越来越大,造成内存泄露。

而Spring 的IntrospectorCleanupListener就是为了解决该问题而存在的。IntrospectorCleanupListener类会在Web 服务器停止后检查并清理缓存里面的引用。

Spring自身不会出现这种问题,因为Spring在加载并分析完一个类之后会马上刷新 JavaBeans Introspector缓存,这就保证Spring中不会出现这种内存泄漏的问题。但有些程序和框架在使用了JavaBeans Introspector之后,没有进行清理工作(如 Quartz,Struts),最后导致内存泄漏。

相关文章

网友评论

      本文标题:Spring MVC 系列之IntrospectorCleanu

      本文链接:https://www.haomeiwen.com/subject/bqeuahtx.html