zoukankan      html  css  js  c++  java
  • tomcat源码阅读之Catalina和Bootstrap解析

    一、Cataling类分析:

    1、Catalina类是启动类,用于启动或者关闭Server对象,它包含一个Digester对象,用于解析tomcat配置文件:conf/server.xml;调用process方法启动Catalina时需要传入参数,如果是start,表示要启动tomcat,如果是stop,表示要关闭tomcat;其他参数还包括-help, -config, -debug, -nonaming;

    2、start方法启动tomcat时,首先创建一个Digester实例来解析server.xml文件,在解析xml文件时根据配置信息会生成Server对象,然后调用Server对象的initialize和start方法启动Server对象,接着调用Server.await在8005端口上等待网络接收信息并阻塞,当await方法收到关闭命令并返回时,会调用Server对象的stop方法关闭tomcat;此外start方法还会利用关闭钩子,确保用户突然退出应用程序时会执行Server对象的stop方法;

    二、Bootstrap类分析:

    1、BootStrap类是一个入口点,负责创建Catalina实例,并调用其process方法;

    2、BootStrap类的main方法会创建三个ClassLoader:commonLoader、catalinaLoader、sharedLoader,这三个ClassLoader分别限制了能访问tomcat的不同目录(这样能避免servlet程序员访问了不该访问的路径);在后面实例化Catalina对象时使用的是sharedLoader作为parentClassloader,这样通过层层传递到Context后,Context应用的父类载入器就是sharedLoader;

     

    3、BootStrap类的main方法在创建三个ClassLoader后,接着创建Catalina的实例,然后调用Catalina对象的setParentClassloader和process方法来启动Server;

  • 相关阅读:
    linux 文件时间
    linux命令学习 touch
    linux命令学习 cp
    Linux命令学习 mv
    SpringMVC mvc详解
    JDBC原生态代码
    java中静态方法中调用非静态方法的详解
    Spring技术详解
    Spring中的 BeanFactory和 ApplicationContext的区别与解释
    java多线程编程相关技术
  • 原文地址:https://www.cnblogs.com/laoxia/p/8081784.html
Copyright © 2011-2022 走看看