Tomcat启动部分源代码分析(一) -- 概览
一. 概览本文所涉及的Tomcat为6.0版本。
Tomcat的启动始于org.apache.catalina.startup.Bootstrap#main(),下面来列举一下相关的源代码:
public static void main(String args[]) {
if (daemon == null) {
daemon = new Bootstrap();
try {
/* 初始化 */
daemon.init();
} catch (Throwable t) {
t.printStackTrace();
return;
}
}
try {
String command = "start";
if (args.length > 0) {
/* 最后一个命令行参数赋给command */
command = args;
}
if (command.equals("startd")) {
args = "start";
daemon.load(args);
daemon.start();
} else if (command.equals("stopd")) {
args = "stop";
daemon.stop();
} else if (command.equals("start")) {
daemon.setAwait(true);// 使用await
daemon.load(args);// 载入守护线程
daemon.start();// 开启容器
} else if (command.equals("stop")) {
daemon.stopServer(args);
} else {
log.warn("Bootstrap: command \"" + command + "\" does not exist.");
}
} catch (Throwable t) {
t.printStackTrace();
}
}
从整个main方法可以大致看出tomcat的启动过程,首先生成一个Bootstrap单例,然后调用它的init()方法,然后判断命令行参数,最后调用start()开启容器。
下面来逐一的研究下每一部分的具体行为。
页:
[1]