**继续上以一篇,说完了Tomact的启动start逻辑之后,当Context容器初始化状态设定为init时,添加在Contex容器的Listener将会被调用。ContextConfig继承了LifecleListener接口,它被加入到StandardContext容器当中。ContextConfig的类会负责整个Web应用的配置文件的解析工作。
==ContextConfig的init方法将会主要完成以下工作:
1.创建用于解析xml配置文件的contextDigester对象
2.读取默认的context。xml配置文件,如果存在解析它
3.读取默认Host配置文件,如果存在解析它
4.读取默认context自身的配置文件,如果存在解析它
5.设置Context的DocBase
ContextConfig的init方法完成后,Context容器的会执行startInternal方法,这个方法启动逻辑比较复杂,主要包括:
1.创建读物资源文件的对象
2.创建Classloader对象
3.设置应用的工作目录
4.启动相关的辅助类如:logger,realm,resources等
5修改启动状态,通知感兴趣的观察者(Web应用的配置)
6.子容器的初始化iu
7.获取ServeltContext并设置必要的参数
8.初始化“load on startup的Servlet
哈哈插眼,以后继续看serlet的架构和工作原理