tomcat的启动过程

           平时我们通过bin目录下的startup.bat来启动tomcat,startup.bat又调用了catalina.bat,catalina.bat从命令行启动org.apache.catalina.startup.Bootstrap,这个类有main方法,所以可以从命令行执行。

          Bootstrap执行后,首先执行init()方法进行初始化,然后调用load()和start()方法。下面具体介绍init()方法、load()、start()方法。

        一、init()

         1、首先设置catalina.home,catalina.base这两个环境变量;

         2、创建了三个类加载器

         根据conf/catalina.properties中的配置,初始化了三个ClassLoader:commonLoader、catalinaLoader、sharedLoader;并且把catalinaLoader设置为当前线程上下文的类加载器;

然后通过下面的语句创建Catalina类的对象(变量名是catalinaDaemon):

       Class startupClass =catalinaLoader.loadClass ("org.apache.catalina.startup.Catalina");
        Object startupInstance = startupClass.newInstance();

        

      二、load()

      通过反射机制,调用catalina对象的load()方法------在该方法中,初始化一些目录,比如temp目录,初始化名称空间,如java:env;然后使用Digester的方式,根据server.xml的配置来装配tomcat的各个组件,这里暂时提一下tomcat的结构,tomcat顶层组件是Server,Server下面有多个Service组件,还有Connector、Engin、Host等。装配组件的过程中,生成了各个组件的对象,并设置了他们之间的关联关系。

    

       三、start()

        该方法里面,通过反射机制,调用了Catalina对象的start()方法。Catalina对象的start()方法又调用了Server对象的Start()方法,并设置关闭Server的回调方法。


     上面简单说明了一下tomcat的启动过程,下一次会给出tomcat的类图、序列图等来说明各个组件之间的关系。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值