zoukankan      html  css  js  c++  java
  • Tomcat源码学习(2)——启动过程分析

    Tomcat启动过程分析

    启动 tomcat 时,Windows下执行 startup.bat ;Linux下执行 startup.sh 文件,实际上最后都是调用

    org.apache.catalina.startup.Bootstrap类的main方法

    main 方法主要做了两件小事:

    1. 定义和初始化 tomcat 自己的 类加载器
    2. 通过反射调用 org.apache.catalina.startup.Catalina的process方法

    process 方法主要功能是:

    1. 如果 catalina.homecatalina.base 两个属性,没有设置就设置一下
    2. 参数正确的话,就调用 execute方法

    execute 方法主要功能是:

    1. 判断参数是否正确
    2. 参数正确的话,执行 start()方法

    start 方法功能:最重要的方法是createStartDigester();((Lifecycle) server).start();createStartDigester方法主要的作用就是帮我们实例化了所有的服务组件包括server,service和connect,start方法就是启动服务实例了。

    Digester是一个外部jar包里面的类,主要的功能就是解析xml里面的元素并把元素生成对象,把元素的属性设置成对象的属性,并形成对象间的父子兄弟等关系。调用digester.parse(is)方法后就会根据模式和server.xml文件来生成对象以及他们之间的相互关系。这样我们便有了服务器组件StandardServer的对象,也有了它的子组件StandardService对象等等。

    Start执行到server.initialize(); ((Lifecycle) server).start();tomcat就实现了启动服务器组件StandardServer。StandardServer的start方法关键代码是启动它的子组件StandardService,StandardService的start方法跟StandardServer的start方法差不多,是启动它的连接器和容器,一个Service包含一个容器和多个连接器。

  • 相关阅读:
    HDFS datanode源码分析
    hive udaf开发入门和运行过程详解
    hive原生和复合类型的数据加载和使用
    tomcat部署web应用(转)
    HDFS namenode源码分析
    HDFS dfsclient写文件过程 源码分析
    hive中UDTF编写和使用(转)
    HDFS dfsclient读文件过程 源码分析
    MapReduce源码分析总结(转)
    DataRabbit 轻量的数据访问框架(09) -- IDataSchemaAccesser
  • 原文地址:https://www.cnblogs.com/muzen/p/8671211.html
Copyright © 2011-2022 走看看