tomcat啓動源碼(1)

tomcat啓動流程
1.入口函數就是BootStrap--main方法
2.初始化並啓動
-----建立BootStrap對象,調用init方法完成初始化
    setCatalinaHome();--設置home目錄:邏輯:若是設置了catalina.home屬性,就用這個,若是沒有就用user.dir(用戶根目錄)做爲home目錄,自動設置catalina.home
    setCatalinaBase()---設置base目錄(也就是項目默認目錄):邏輯若是設置了catalina.base,就用這個,不然就用跟catalina.home相同的目錄
    initClassLoaders()---初始化classload類加載器,tomcat有本身的類加載器StandardClassLoader,用來加載web項目
    Thread.currentThread().setContextClassLoader(catalinaLoader)---將catalinaLoader類加載器設置到當前線程中去
    startupClass.newInstance()--使用自定義的類加載器加載Catalina類,並經過反射建立對象
    startupInstance.getClass().getMethod(methodName, paramTypes)---經過反射給Catalina對象設置父setParentClassLoader類加載器,值就是StandardClassLoader
    catalinaDaemon = startupInstance----catalina守護進程賦予Catalina對象
-----根據傳入的參數 start stop啓動或中止服務
     daemon.setAwait(true);---經過反射執行Catalina對象的setAwait方法,等待
     daemon.load(args)---經過反射執行Catalina對象的load方法,參數就是start--stop
     daemon.start()---經過反射執行Catalina對象的start方法web

相關文章
相關標籤/搜索