摘要:
Tomcat源码版本:apache-tomcat-8.5.54-srcJDK源码版本:jdk1.8.0_171 Tomcat的Service包含一个容器组件和多个连接器组件,连接器负责接收请求,容器负责处理请求。 一、连接器代码包org.apache.coyote是Tomcat连接器框架包。Coyo 阅读全文
摘要:
Tomcat源码版本:apache-tomcat-8.5.54-srcJDK源码版本:jdk1.8.0_171 一、服务器1、org.apache.catalina.Server接口一个服务器提供了一种优雅的机制来启动和停止整个系统,不必再单独的启动连接器和容器了。当服务器启动的时候,它启动内部的所 阅读全文
摘要:
Tomcat源码版本:apache-tomcat-8.5.54-srcJDK源码版本:jdk1.8.0_171 1、juli包(1)Tomcat日志包:org.apache.juli。默认情况下,Tomcat使用自身的juli作为Tomcat内部的日志处理系统,而juli默认使用JDK提供的日志ja 阅读全文
摘要:
Tomcat源码版本:apache-tomcat-8.5.54-srcJDK源码版本:jdk1.8.0_171 1、Lifecycle接口Lifecycle接口统一管理Tomcat生命周期。(1)接口定义 public interface Lifecycle { // 13个状态常量值 publi 阅读全文
摘要:
Tomcat源码版本:apache-tomcat-8.5.54-srcJDK源码版本:jdk1.8.0_171 org.apache.tomcat.util.digester.Digester用于解析server.xml,通过它可以很方便的从xml文件生成java对象。1、Java解析XML文件主要 阅读全文
摘要:
Tomcat源码版本:apache-tomcat-8.5.54-srcJDK源码版本:jdk1.8.0_171 先来讲一下JVM的类加载机制。 一、JVM类加载机制1、继承关系 ExtClassLoader和AppClassLoader都继承父类ClassLoader,ClassLoader有一个属 阅读全文
摘要:
tomcat源码版本:apache-tomcat-8.5.54-src 一、代码流程 1、代码入口(运行startup.bat或startup.sh) Bootstrap::main 2、初始化 -->Bootstrap::init 初始化类加载器java.net.URLClassLoader -- 阅读全文
摘要:
一、整体架构 Tomcat主要有两个组件:连接器Connector和容器Container。Tomcat为了实现统一管理连接器和容器等各种组件,额外添加了服务器组件(server)和服务组件(service),一个server可以有多个service,一个service包含多个连接器和一个容器。 1 阅读全文
摘要:
为什么要学习Tomcat源码?学习源码的目的是什么?学习Tomcat源码属于理论学习,实践使用属于技能练习,长时间使用和处理使用问题属于经验积累。1、掌握Tomcat原理理论, 可以进行调优:在各种场景下,合理的配置使用Tomcat,最大限度的发挥Tomcat的性能。 可以解决问题:根据原理来解决使 阅读全文
摘要:
环境 jdk version:jdk1.8.0_171 线程池的接口、类关系图: 线程池的引入,主要解决以下问题: 减少系统因为频繁创建和销毁线程所带来的开销; 自动管理线程,对使用方透明,使其可以专注于任务的构建。 一、ThreadPoolExecutor 1、构造线程池 /** * 使用给定的参 阅读全文