平时我们通过bin目录下的来启动tomcat,又调用了,从命令行启动,这个类有main方法,所以可以从命令行执行。
Bootstrap执行后,首先执行init()方法进行初始化,然后调用load()和start()方法。下面具体介绍init()方法、load()、start()方法。
一、init()
1、首先设置,这两个环境变量;
2、创建了三个类加载器
根据conf/中的配置,初始化了三个ClassLoader:commonLoader、catalinaLoader、sharedLoader;并且把catalinaLoader设置为当前线程上下文的类加载器;
然后通过下面的语句创建Catalina类的对象(变量名是catalinaDaemon):
Class startupClass = ("");
Object startupInstance = ();
二、load()
通过反射机制,调用catalina对象的load()方法------在该方法中,初始化一些目录,比如temp目录,初始化名称空间,如java:env;然后使用Digester的方式,根据的配置来装配tomcat的各个组件,这里暂时提一下tomcat的结构,tomcat顶层组件是Server,Server下面有多个Service组件,还有Connector、Engin、Host等。装配组件的过程中,生成了各个组件的对象,并设置了他们之间的关联关系。
三、start()
该方法里面,通过反射机制,调用了Catalina对象的start()方法。Catalina对象的start()方法又调用了Server对象的Start()方法,并设置关闭Server的回调方法。
上面简单说明了一下tomcat的启动过程,下一次会给出tomcat的类图、序列图等来说明各个组件之间的关系。