Webx的启动过程讲解

了解webx的启动过程,对应用程序的加载和初始化,以及排查问题,有很大的帮助。

本文从Webx2和webx3启动过程,分别来讲解

1、 Webx2应用启动过程

在web启动的时候,将com.alibaba.webx.WebxControllerServlet的属性load-on-startup设置为1,让其自动加载。Webx中的WebxControllerServlet继承于 AbstractWebxControllerServlet,而AbstractWebxControllerServlet继承于HttpServlet,HttpServlet在初始化的时候会调用init()。AbstractWebxControllerServlet又重写了init(),在init()中调用用configure()创建WebxLoader对象读取配置文件,初始化logging系统和service manager。其中WebxLoader读取配置文件的序列图如图所示。

2、Webx3应用启动过程

 

Webx3中是使用SpringExt Schema进行扩展,装配服务,动态增加扩展点和捐献,更加方便。WebAppContext,StartContext()来进行webx的加载。其加载流程如下。

      相关的webx.xml和webx-*.xm是在WebxComponentContext中resfresh方法中加载的,其加载的过程如下图所示。