按照 http://www.cnblogs.com/huangfox/archive/2011/10/20/2218970.html 的步骤下载Tomcat6源码,就可以开始学习Tomcat的源码了。
首先,从启动类org.apache.catalina.startup.Bootstrap开始,这段大概是说明Bootstrap类的功能是用来加载Catalina容器,并执行Catalina容器中的启动方法。在Bootstrap中创建一个类加载器专门用来加载Catalina容器内部的类,包括配置catalina.home路径中的jar文件。这样做的目的是为了让Catalina容器内部的类以及所依赖的类不被类路径外部的应用级类可见。简单的说,就是说明Bootstrap主要是加载并启动Catalina容器,并且此加载器是专门加载Catalina容器的。
这个类中只有这么几个属性,并且没有显示的构造器。Log接口的实现类为DirectJDKLog,而DirectJDKLog类又是Logger的一个装饰类。所以,使用log中的方法,实际上是调用的Logger类中的方法。
main()方法中的第一部分代码,初始化daemon
在初始化Bootstrap时,首先设置了catalina.home和catalina.base;