tomcat bootstrap
下载apache-tomcat-6.0.2-src我们来分析一下tomcat的部分源码。
查看catalina.sh或者catalina.bat可以发现这一行:org.apache.catalina.startup.Bootstrap “$@” start
由此我们了解到调用Bootstrap来启动系统是tomcat启动的第一步。
下一步我们再来查看一下Bootstrap.java的源码,
A.main()
里面逻辑很清晰也很简单:
1.new一个Bootstrap对象,并调用init()来初始化系统。
2.通过外部传入的参数来决定是start,stop,startd,stopd。
B.init()
main()里面的init()所做的事情:
1.设置CatalinaHome
2.设置CatalinaBase
3.初始化ClassLoaders
4.使用初始化好的classLoader来做一些事情
B.1和B.2都是通过配置文件和当前环境所处绝对路径来设置实际的运行环境。
B.3创建了commonLoader,catalinaLoader,sharedLoader,它们之间的关系是:
commonLoader—->catalinaLoader,commonLoader—->sharedLoader
catalinaLoader与sharedLoader是位于同一层级,并且有共同的parent:commonLoader
B.4主要是调用catalinaLoader中的org.apache.catalina.startup.Catalina来启动系统。

评论