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

StandardContext的类关系是:

classStandardContext extends ContainerBase implements Context, NotificationEmitter

abstractclass ContainerBase extends LifecycleMBeanBase implements Container

    调用父类LifecycleBasestart()方法。

1、init

(1)、setStateInternal(LifecycleState.INITIALIZING,null, false);因为lslisteners2个。

    1)、ContextConfig,在此阶段没动作。

    2)、MemoryLeakTrackingListener,在此阶段没动作。

2)、initInternal(),执行StandardContextinitInternal方法。



 

    1)、调用父类LifecycleMBeanBaseinitInternal,注册Mbean

    2)、给StandardContextlslisteners增加一个TldConfig

    3)、进行消息的处理,与J2EE有关。

(3)、setStateInternal(LifecycleState.INITIALIZED,null, false); 因为lslisteners3个。

     1)、ContextConfig,进行init初始化。



 

       1))、创建Digester对象。

      2))、contextConfig();后续介绍

      3))、createWebXmlDigester(context.getXmlNamespaceAware(),context.getXmlValidation());后续介绍

            4))、fixDocBase();后续介绍

2)、MemoryLeakTrackingListener,在此阶段没动作。

3)、TldConfig,后续介绍。

2setStateInternal(LifecycleState.STARTING_PREP, null, false);后续介绍。

3startInternal();后续介绍

4setStateInternal(LifecycleState.STARTED, null, false);后续介绍。

猜你喜欢

转载自83519144.iteye.com/blog/1887000