spring监听器--------IntrospectorCleanupListener

原创
2015/09/23 09:49
阅读数 2.1K

web.xml中的配置:

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

作用:保证在web 应用关闭的时候释放与掉这个web 应用相关的class loader 和由它管理的类。

注意:

1.    spring 托管的bean不需要使用这个监听器,因为spring它自己的introspection所使用的缓冲在分析完一个类之后会被马上从javaBeans Introspector缓冲中清除掉,应用程序中的类从来不直接使用JavaBeans Introspector,所以他们一般不会导致内存资源泄露。

2.    与一些类库和框架(例如:Struts 和Quartz)整合使用时,造成内存泄漏会导致整个的web应用的类加载器不能进行垃圾回收-----此应用的所有静态类资源(例如单例)在web应用关闭之后未被释放,而导致内存泄露的根本原因其实并不是这些未被回收的类

3.    IntrospectorCleanupListener应该注册为web.xml中的第一个Listener,在任何其他Listener之前注册,比如在Spring's ContextLoaderListener注册之前,才能确保IntrospectorCleanupListener在Web应用的生命周期适当时机生效。

展开阅读全文
打赏
2
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
2
分享
返回顶部
顶部