package org.apache.catalina.startup;
public class Catalina extends [b]Embedded[/b]
Embedded 类主要负责Catalina 的 Startup/Shutdown。 它继承自Embedded, Embedded又继承自StandardService,并实现Lifecycle接口,StandardService实现了 Lifecycle, Service 和MBeanRegistration 接口。它和Embedded做一样的事情,只不过要用到"conf/server.xml"。
[b]主要方法:[/b]
[color=blue][b]start()[/b][/color]
Bootstrap的start方法最后调用了Catalina 的start方法来启动Tomcat。先判断server (org.apache.catalina.Server)是不是null,是的话调用load()方法。
然后启动server: ((Lifecycle) server).start();
然后注册shutdown守护进程。Runtime.getRuntime().addShutdownHook(shutdownHook);
最后调用await()方法,监听指定的端口(8080),等待shutdown命令的到来,以关闭tomcat。
[color=green]至此,server就启动起来了。[/color]
[color=blue][b]load()[/b][/color]
load 方法 开启一个新的 server 实例。server实例是单例的,代表整个JVM, 首先,调用父类 Embedded 的 initDirs() 方法来设置目录:
System.setProperty("catalina.home", catalinaHome);
System.setProperty("catalina.base", catalinaBase);
然后,initNaming();
然后, 构建并执行server.xml解析器 Digester,
Digester digester = createStartDigester();
Digester 用来处理XML输入流,也就是解析server.xml。
然后, 装载配置文件server.xml (file = configFile();), 用 digester.parse(inputSource)来构建Server (StandardServer),
最后初始化server, server.initialize()。
public class Catalina extends [b]Embedded[/b]
Embedded 类主要负责Catalina 的 Startup/Shutdown。 它继承自Embedded, Embedded又继承自StandardService,并实现Lifecycle接口,StandardService实现了 Lifecycle, Service 和MBeanRegistration 接口。它和Embedded做一样的事情,只不过要用到"conf/server.xml"。
[b]主要方法:[/b]
[color=blue][b]start()[/b][/color]
Bootstrap的start方法最后调用了Catalina 的start方法来启动Tomcat。先判断server (org.apache.catalina.Server)是不是null,是的话调用load()方法。
然后启动server: ((Lifecycle) server).start();
然后注册shutdown守护进程。Runtime.getRuntime().addShutdownHook(shutdownHook);
最后调用await()方法,监听指定的端口(8080),等待shutdown命令的到来,以关闭tomcat。
[color=green]至此,server就启动起来了。[/color]
[color=blue][b]load()[/b][/color]
load 方法 开启一个新的 server 实例。server实例是单例的,代表整个JVM, 首先,调用父类 Embedded 的 initDirs() 方法来设置目录:
System.setProperty("catalina.home", catalinaHome);
System.setProperty("catalina.base", catalinaBase);
然后,initNaming();
然后, 构建并执行server.xml解析器 Digester,
Digester digester = createStartDigester();
Digester 用来处理XML输入流,也就是解析server.xml。
然后, 装载配置文件server.xml (file = configFile();), 用 digester.parse(inputSource)来构建Server (StandardServer),
最后初始化server, server.initialize()。