tomcat与springmvc 结合 之---第18篇 StandContext容器和SpringMVC的监听器的模型

时间:2023-03-08 23:31:25
tomcat与springmvc 结合 之---第18篇 StandContext容器和SpringMVC的监听器的模型

writedby张艳涛

如何使用tomcat的监听器

public class BootStrap_ex06 {
public static void main(String[] args) {
HttpConnector connector = new HttpConnector();
SimpleWrapper wrapper1 = new SimpleWrapper();
wrapper1.setName("Primitive");
wrapper1.setServletClass("PrimitiveServlet");
SimpleWrapper wrapper2 = new SimpleWrapper();
wrapper2.setName("Modern");
wrapper2.setServletClass("ModernServlet"); SimpleContext context = new SimpleContext();
context.addChild(wrapper1);
context.addChild(wrapper2); SimpleContextMapper mapper = new SimpleContextMapper();
mapper.setProtocol("http");
SimpleContextLifecycleListener listener = new SimpleContextLifecycleListener(); ((Lifecycle) context).addLifecycleListener(listener);
context.addMapper(mapper);
SimpleLoader loader = new SimpleLoader(); context.setLoader(loader); context.addServletMapping("/Primitive", "Primitive");
context.addServletMapping("/Modern", "Modern");
connector.setContainer(context); try {
connector.initialize();
((Lifecycle) connector).start();
((Lifecycle) context).start();
System.in.read();
((Lifecycle) context).stop(); }catch (Exception e){
e.printStackTrace();
} }
}

可以看到将一个listener传给context.的lifecyclesupport对象

tomcat与springmvc 结合 之---第18篇 StandContext容器和SpringMVC的监听器的模型

那么来看下spring的监听器,起点就是

FrameworkServlet

==>

createWebApplicationContext

==>

configureAndRefreshWebApplicationContext(wac);
==>

tomcat与springmvc 结合 之---第18篇 StandContext容器和SpringMVC的监听器的模型

看到了,spring的监听器实现很复杂

spring的源码读起来比tomcat要难呢