happy_boy 发表于 2017-2-10 12:34:58

Tomcat源码解读--代码走读之(二十九的2-3)StandardContext. start(三十)

StandardContext的类关系是:
classStandardContext extends ContainerBase implements Context, NotificationEmitter,
abstractclass ContainerBase extends LifecycleMBeanBase implements Container
    调用父类LifecycleBase的start()方法。
1、init,
(1)、setStateInternal(LifecycleState.INITIALIZING,null, false);因为ls的listeners有2个。
    1)、ContextConfig,在此阶段没动作。
    2)、MemoryLeakTrackingListener,在此阶段没动作。
(2)、initInternal(),执行StandardContext的initInternal方法。
  

 
    1)、调用父类LifecycleMBeanBase的initInternal,注册Mbean
    2)、给StandardContext的ls的listeners增加一个TldConfig
    3)、进行消息的处理,与J2EE有关。
(3)、setStateInternal(LifecycleState.INITIALIZED,null, false); 因为ls的listeners有3个。
     1)、ContextConfig,进行init初始化。
  

 
       1))、创建Digester对象。
      2))、contextConfig();后续介绍
      3))、createWebXmlDigester(context.getXmlNamespaceAware(),context.getXmlValidation());后续介绍
            4))、fixDocBase();后续介绍
2)、MemoryLeakTrackingListener,在此阶段没动作。
3)、TldConfig,后续介绍。
2、setStateInternal(LifecycleState.STARTING_PREP, null, false);后续介绍。
3、startInternal();后续介绍
4、setStateInternal(LifecycleState.STARTED, null, false);后续介绍。
页: [1]
查看完整版本: Tomcat源码解读--代码走读之(二十九的2-3)StandardContext. start(三十)