1、通过startup.sh脚本调用catalina.sh如截图代码:

2、通过catalina.sh脚本调用tomcat启动类:BootStrap.java的start方法
3、在start方法中判断类加载器是否已经创建,如果没有创建调用init()方法初始化类加载器,并创建java.lang.ClassLoader的子类对象(org.apache.catalina.startup.Catalina)

4、然后执行Catalina对象的start方法(通过反射),如图所示:

5、创建digester处理器,完成对应对象的实例化以及创建等。并初始化Server对象:具体解释:https://www.jianshu.com/p/8d9a6ae40303
6、在Catalina对象中的start()方法,调用getServe()方法,获取Server对象。具体方法:load()

7、然后getServer()调用服务的start方法,启动server,并在服务中调用service的启动方法,启动对应的service。


2万+

被折叠的 条评论
为什么被折叠?



