WarLoaderServlet 加载过程分析

将red5 以war的形式集成在servlet容器中, 需要配置监听容器的类,在tomcat/jetty启动的时候,WarLoaderServlet会被加载执行

<listener>
  <listener-class>org.red5.server.war.WarLoaderServlet</listener-class>
</listener>

 

WarLoaderServlet extends org.springframework.web.context.ContextLoaderListener

 

ContextLoaderListener implements javax.servlet.ServletContextListener

从上面的关系可以清楚了解,WarLoaderServlet 是一个容器的监听类,在服务启动时,contextInitialized方法会被调用。

 

//初始化spring容器

super.contextInitialized(sce);

//得到spring容器的引用

applicationContext = (ConfigurableWebApplicationContext) servletContext
     .getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

//

ConfigurableBeanFactory factory = applicationContext.getBeanFactory();

   // register default
   factory.registerSingleton("default.context", applicationContext);

   // get the main factory
   parentFactory = (DefaultListableBeanFactory) factory.getParentBeanFactory();

 

 

你可能感兴趣的:(spring,tomcat,Web,servlet)