Spring 启动 ContextLoaderListener

1, ContextLoaderListener

ContextLoaderListener implements ServletContextListener


private ContextLoader contextLoader;


// 这个方法在Web应用服务做好接受请求的时候被调用
public void contextInitialized(ServletContextEvent event) {
		this.contextLoader = createContextLoader();
		this.contextLoader.initWebApplicationContext(event.getServletContext());
	}


public void contextDestroyed(ServletContextEvent event) {
		if (this.contextLoader != null) {
			this.contextLoader.closeWebApplicationContext(event.getServletContext());
		}
	}

 ServletContextListener的用法。这个事件类作为Web应用服务的一部分,处理Web应用的 servlet上下文(context)的变化的通知。这可以解释为,好像有个人在服务器旁不断地通知我们服务器在发生什么事件。那当然需要监听者了。因此,在通知上下文(context)初始化和销毁的时候,ServletContextListner非常有用

ServletContextListener接口有两方需要实现的方法:
contextInitialized()contextDestroyed();

我们可以利用这个特性初始化一些信息,当然我们也可以利用Servlet类init()方法,并在配置文件中让它启动应用的时候
就执行,并且在关闭的时候执行destroy()方法.但是继承此接口应该更符合容器的应用.

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>


//对于实现了Servlet 2.2规范的Web容器而言,只能够使用ContextLoaderServlet。对于一些实现了Servlet 2.3规//范的Web容器而言,也可以使用ContextLoaderListener。

<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>


 

猜你喜欢

转载自yelwen000.iteye.com/blog/1626327