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对象
那么来看下spring的监听器,起点就是
FrameworkServlet
==>
createWebApplicationContext
==>
configureAndRefreshWebApplicationContext(wac);
==>
看到了,spring的监听器实现很复杂
spring的源码读起来比tomcat要难呢