spring启动顺序
tomcat启动服务首先解析的是web.xml配置文件
1 <listener> 2 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 3 </listener>
这段配置的意思是-----启动监听器ContextLoaderListener,从字面意思我知道上下文加载监听?
那么什么是上下文呢?这里的Context又指的是什么呢?
我现在也没什么好的答案解释。
接下来我们看看这个被监听的类
ContextLoaderListener.class
package org.springframework.web.context; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class ContextLoaderListener extends ContextLoader implements ServletContextListener { public ContextLoaderListener() { } public ContextLoaderListener(WebApplicationContext context) { super(context); } public void contextInitialized(ServletContextEvent event) { initWebApplicationContext(event.getServletContext()); } public void contextDestroyed(ServletContextEvent event) { closeWebApplicationContext(event.getServletContext()); ContextCleanupListener.cleanupAttributes(event.getServletContext()); } }
首先我们看到它继承了 ContextLoader类,同时实现了ServletContextListener接口,他们分别有什么作用呢?
在往下看他有一个无参构造函数,和一个有参构造函数
再接着是两个它实现的方法contextInitialized(ServletContextEvent event),contextDestroyed(ServletContextEvent event)
从字面意思我可以知道这是初始化上下文,销毁上下文
接下来看看这个ServletContextListener接口
package javax.servlet; import java.util.EventListener; public abstract interface ServletContextListener extends EventListener { public abstract void contextInitialized( ServletContextEvent paramServletContextEvent); public abstract void contextDestroyed( ServletContextEvent paramServletContextEvent); }
可以看出这个接口是一个抽象接口继承了EventListener类
我们在看看
EventLister.class从字面意思是事件监听
package java.util; /** * A tagging interface that all event listener interfaces must extend. * @since JDK1.1 这个注释的意思是,所有的监听接口都必须继承这个类,虽然他没有方法 */ public interface EventListener { }
看到这里我们在返回去看ContextLoaderListener类
public void contextInitialized(ServletContextEvent event) { initWebApplicationContext(event.getServletContext()); } public void contextDestroyed(ServletContextEvent event) { closeWebApplicationContext(event.getServletContext()); ContextCleanupListener.cleanupAttributes(event.getServletContext()); }
contextInitialized这个方法调用的时候传入的参数
去读书吧,就算将来后悔,也只会后悔选错路,而不是无路可选!就算烦恼,也只会因方向太多,而不是因为无路可选!生而为人,便要选择自己最喜欢的道路!若到了尽头,那便以书为剑,选择斩出一条新路!

浙公网安备 33010602011771号