tomcat解析(九)StandardServer.initialize.start

在前幾篇文章中已說到整個服務器的啓動已託管給該類的initialize及start方法,下面我們來看一下這兩個方法的內容
一.initialize
 

內容有三
1.lifecycle.fireLifecycleEvent(INIT_EVENT, null);
 觸發Lifecycle事件,將調用其LifecycleListener的相應方法,這裏需要在XML文件裏有配置,這裏不細講了
2.Registry.getRegistry(null, null).registerComponent(this, oname, null );
將該實例註冊到MBeanFactory
3.services[i].initialize()

這裏又將初始化的動作妥託給StandardService類的initialize進行

二.start()
 

內容有三
1.lifecycle.fireLifecycleEvent
觸發Lifecycle.BEFORE_START_EVENT及Lifecycle.START_EVENT
2.((Lifecycle) services[i]).start();
妥拒給StandardService.start
3.lifecycle.fireLifecycleEvent
觸發Lifecycle.AFTER_START_EVENT
StandardServer的默認Listener有如下幾個
org.apache.catalina.core.AprLifecycleListener
org.apache.catalina.core.JasperListener
org.apache.catalina.mbeans.ServerLifecycleListener
org.apache.catalina.mbeans.GlobalResourcesLifecycleListener
這幾個監聽器的工作無非就是初化一些類如JspRuntimeContext,將之前解析XML得到的對象以MBean方式進行註冊及取消註冊等
下一篇我們分別來看StandardService.initialize,start

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章