最近有点懒,博客更新少,补上一篇之前的欠债。。。这篇博客内容基于《Tomcat架构解析》,这里把Tomcat主要的结构介绍了下,更详细的内容大家可以参考该书。
Tomcat是全世界最著名的基于Java语言的轻量级应用服务器,是一款完全开源免费的Servlet容器实现。同时,它支持HTML,JS等静态资源的处理,因此也可作为轻量级的WEB服务器来使用。在以前的WEB开发当中,我们主要通过将程序打包,将打包文件放到webapps下来进行访问,而在使用SpringBoot作为开发框架的情况下,由于SpringBoot已内嵌Tomcat,不需要将打包文件放在特定的文件夹下,而是直接运行程序即可。这篇博客第一部分内容将介绍Tomcat的整体架构,第二部分介绍SpringBoot内嵌Tomcat的实现。
Tomcat总体架构
首先,让我们来看一张图:
Tomcat总体的设计便是围绕着这张图来的。下面我们依次对上图中的各个部分做一下介绍。
Lifecycle 接口
该接口主要定义了容器整个生命周期过程中的各个阶段
public interface Lifecycle {
public void init() throws LifecycleException;
public void start() throws LifecycleException;
public void stop() throws LifecycleException;
public void destroy() throws LifecycleException;
public void addLifecycleListener(LifecycleListener listener);
...
}
该接口包含了容器初始化,开始,停止,销毁等过程。其实现类的各个组件在容器的工作过程当中需要做的工作,即在这几个函数中来完成。
Server
表示整个Servlet容器,因此Tomcat运行环境中只有唯一一个Ser