ContextLoaderListener继承ContextLoader,实现了ServletContextListener。
一:实现ServletContextListener
ServletContextListener是为了接收ServletContext生命周期变化事件定义的接口,而ServletContext是定义了一系列和servlet容器通讯方法的接口,所以可以理解ServletContextListener为接收容器(tomcat/jetty...)启动和销毁事件的监听器。他有两个方法:
contextInitialized contextDestroyed分别接收容器启动事件和容器销毁事件,从名字便可以区分。
那么spring的ContextLoaderListener继承了它,只要在web应用中注册了这个监听自然也就能够收到容器启动和销毁事件,那现在只需要理解spring的这个监听在容器启动和销毁分别作了什么事情就理解了这个监听的功能是什么了。
二:继承ContextLoader
Spring的ApplicationContext就是和为应用提供配置的一个中心接口,所以可以狭隘的把一个上下文就理解为一个容器。ApplicationContext的实现有很多包括ClassPathXmlApplicationContext,XmlWebApplicationContext等等。
ContextLoader就是对root application context(跟应用上下文)执行真正的初始化操作的类。在contextInitialized中被调用初始化操作。
contextInitialized所以也就不难理解,ServletContextListener就是一个在servlet容器启动的时候初始化root application context(根容器)的监听,并且在servlet容器销毁的时候销毁这个root application context。
contextDestroyed
网友评论