tomcat启动流程分析(tomcat启动流程)
tomcat启动流程分析(tomcat启动流程)6.1.2、初始化catalinaLoade6.1.1、根据catalina.property的common.loader配置初始化commonLoader5、Bootstrap类加载时通过静态代码块初始化catalina.base、catalina.home变量;6、Bootstrap实例化,并调用Init方法初始化6.1、初始化类加载器
1、运行bin/startup.sh脚本;
2、startup.sh脚本中启动catalina.sh脚本;
3、catalina.sh脚本中设置启动的环境变量,catalina.base、catalina.home等;
4、catalina.sh脚本启动bin/bootstrap.jar,该jar包包含tomcat启动类,通过Bootstrap类的main方法启动和停止,根据传入的参数确定操作类型;
5、Bootstrap类加载时通过静态代码块初始化catalina.base、catalina.home变量;
6、Bootstrap实例化,并调用Init方法初始化
6.1、初始化类加载器
6.1.1、根据catalina.property的common.loader配置初始化commonLoader
6.1.2、初始化catalinaLoade
6.1.3、初始化sharedLoader
6.2、将catalinaLoader赋值给线程上下文类加载器
6.3、catalinaLoader加载类org.apache.catalina.startup.Catalina并实例化,赋值给catalinaDaemon变量(这一步的目的是可以通过这个变量获取catalinaLoader类加载器)
7、启动
7.1 设置Catalina的await为true
7.2、Catalina.load载入设置
- 确定系统环境中java.io.tmpdir目录存在
- 将catalina.useNaming、java.naming.factory.url.pkgs、java.naming.factory.initial属性设置至系统环境中,为创建汇编器Digester做准备
- 创建汇编器Digester,并将server.xml相关配置项添加进入Digester的管理序列中
- 解析server.xml,实例化Server类,并将相应配置添加到StandardServer实例中
- server通过Init方法初始化
7.3、Catalina.start启动服务