文档章节

IntrospectorCleanupListener作用

霜叶情
 霜叶情
发布于 2017/06/01 14:12
字数 475
阅读 19
收藏 0
<!--web.xml-->
<listener>
        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>

1、此监听器主要用于解决java.beans.Introspector导致的内存泄漏的问题

2、此监听器应该配置在web.xml中与Spring相关监听器中的第一个位置(也要在ContextLoaderListener的前面)
3、JDK中的java.beans.Introspector类的用途是发现Java类是否符合JavaBean规范如果有的框架或程序用到了Introspector类,那么就会启用一个系统级别的缓存,此缓存会
   存放一些曾加载并分析过的JavaBean的引用。当Web服务器关闭时,由于此缓存中存放着这些JavaBean的引用,所以垃圾回收器无法回收Web容器中的JavaBean对象,最后导致
     内存变大。而org.springframework.web.util.IntrospectorCleanupListener就是专门用来处理Introspector内存泄漏问题的辅助类。IntrospectorCleanupListener会在
     Web服务器停止时清理Introspector缓存,使那些Javabean能被垃圾回收器正确回收。Spring自身不会出现这种问题,因为Spring在加载并分析完一个类之后会马上刷新
     JavaBeans Introspector缓存,这就保证Spring中不会出现这种内存泄漏的问题。但有些程序和框架在使用了JavaBeans Introspector之后,没有进行清理工作(如                    Quartz,Struts),最后导致内存泄漏.

只知道servlet标准不允许在web容器内自行做线程管理,quartz的问题确实存在。

对于Web容器来说,最忌讳应用程序私自启动线程,自行进行线程调度,像Quartz这种在web容器内部默认就自己启动了10线程进行异步job调度的框架本身就是很危险的事情,很容易造成servlet线程资源回收不掉,所以我一向排斥使用quartz。

quartz还有一个问题就是不支持cluster。导致使用quartz的应用都没有办法做群集。

© 著作权归作者所有

共有 人打赏支持
霜叶情
粉丝 2
博文 99
码字总数 66984
作品 0
长沙
spring监听器--------IntrospectorCleanupListener

web.xml中的配置: <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> 作用:保证在web 应用关闭的时候释放与掉这个web......

绿林小子
2015/09/23
845
0
web.xml 中listener配置

前言:之前写了一篇关于Filter的文章:http://tianweili.github.io/blog/2015/01/26/java-filter/,现在再来一篇Listener的,Filter和Listener在项目中是经常用到的,巧妙的使用可以达到事半...

binhu
2016/10/20
31
0
启动 mini-web 报错 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

在学习Springside的实例mini-web的时候遇到了Tomcat报错: 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.Cla......

LeoXu
2012/04/21
3.5K
2
spring IntrospectorCleanupListener和ContextLoaderListener

在springmvc配置中web.xml中有两个监听: org.springframework.web.util.IntrospectorCleanupListener 和 org.springframework.web.context.ContextLoaderListener...

hf201429
2015/07/24
334
2
【web.xml】报错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

今天搭建新的项目,虽然在web.xml中配置了ContextLoaderListener以及IntrospectorCleanupListener 如下: web.xml中部分代码: 1 2 3 org.springframework.web.context.ContextLoaderListe......

angel挤一挤
2017/05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
今天
2
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
38
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部