进入tomcat/bin,会发现有startup.sh,这个就是启动tomcat的shell脚本,这个脚本其实就是启动BootStrap.class里面的main方法!
找到BootStrap.class所在的jar(tomcat/lib/catalina.jar),从mian方法入门:BootStrap.main->调用BootStrap.init(最重要的是调initClassLoaders方法来载入tomcat必要的jar,反射创建org.apache.catalina.startup.Catalina的实例)->Catalina.start->Catalina.load(加载conf/server.xml文件,解析server.xml配置文件,并加载Server、Service、Connector、Container、Engine、Host、Context、Wrapper一系列的容器。加载完成后,调用getServer().start()来开启一个新的Server)->getServer().start()->开启服务、初始化并开启一系列组件、子容器