5、tomcat的停止
前言 前面我们已经经历了tomcat的启动和请求接收处理,本节我们来看看tomcat的停止过程。 Bootstrap tomcat的停止仍然是从Bootstrap开始的,当我们输入的命令为stop的时候,tomcat会开始进入停止的流程,源码如下: else if (command.equals("stop")) { daemon.stopServer(args); } ...
前言 前面我们已经经历了tomcat的启动和请求接收处理,本节我们来看看tomcat的停止过程。 Bootstrap tomcat的停止仍然是从Bootstrap开始的,当我们输入的命令为stop的时候,tomcat会开始进入停止的流程,源码如下: else if (command.equals("stop")) { daemon.stopServer(args); } ...
前言 上一节我们已经知道tomcat是如何启动的了,那么tomcat启动完成之后,如何接收请求呢?从本节开始,我们会详细分析tomcat接收请求到最后处理的过程。 请求接收 上一节我们提到两个重要的线程,辨识线程和接收线程,实际上tomcat接收请求就是通过接收线程来实现的,tomcat的接收线程对象是org.apache.tomcat.util.net.AbstractEndpoin...
前言 在上一节我们已经大致了解了tomcat的结构了,本节开始我们来看看tomcat的启动流程。 Bootstrap 在使用maven搭建环境的时候,我们最后运行了org.apache.catalina.startup.Bootstrap的main函数,并指定的启动参数: -Dcatalina.home=target/classes/ -Dcatalina.base=target/...
前言 上一节我们已经通过maven把tomcat的开发环境搭建好了,现在我们可以开始阅读源码了。 在开始之前先给这次读源码定个小目标吧,比方说我先把源码背下来。 好吧开玩笑的,关于tomcat源码解读的系列博客,我准备按照从tomcat启动到处理一次完整的请求再到tomcat关闭的完整过程来读tomcat的源码,这个系列的博客也会按照这个顺序来写,尽量争取能在10月份到来之前完成这个系...
前言 昨天在读jdk的线程池实现的时候,发现线程池中使用了一个关键字volatile,这个关键字其实知道很久了,一直都不太理解,因为很多专家和书都强烈推荐不要使用这个关键字,所以一直都很迷惑这个关键字的用途,也不知道为什么要设计这个关键字,今天难得有点时间,决定把这个迷惑彻底解开。 volatile到底有什么用 在java的定义中,volatile关键字是用来保证变量的改动在并发环境下...
前言 一直以来对线程池的概念都挺模糊的,想不明白线程池要如何实现,今天难得周末,就开始查阅资料,研究了一下jdk中的线程池实现,终于解开了我长久以来的疑惑,本文参考文章来自网络,原文连接如下: http://www.cnblogs.com/dolphin0520/p/3932921.html 参考连接针对jdk6,本文针对jdk8 疑惑 和线程池类似的有一个概念叫连接池,在数据库连...
前言 其实很早前就想读一下tomcat的源码了,无奈的是tomcat的工程一直是使用ant构建的,ant是比较早前的构建工具了,甚至可以说是古老的构建工具,我并没有用过,也不熟悉,所以一直都没办法构建一个开发环境来读tomcat的源码。 后来在网上查了一些资料,现在确实有人使用maven来构建tomcat的开发环境,不过基本上都是把整份源码拷贝过来,再配合tomcat的发布包来运行起来的...
前言 今天用leap开发公司的一个api,由于我现在比较习惯使用测试驱动开发,所以经常是先完成一个单元测试,再基于单元测试做功能,今天在写单元测试的时候遇到了一个问题,属于leap的一个比较深层次的问题了,所以决定记录一下。 问题 因为leap本身提供了单元测试模块,可以非常方便的写leap单元测试和leap-web单元测试,我写单元测试用的也是leap的单元测试模块,所以严格来说这个...
这里收集一些比较不错的网站 Apache项目git库 http://git.apache.org/ 这个网站是Apache的各个开源项目对应的git地址。 在线画拓扑图 https://www.processon.com/ 这个网站可以在线画网络拓扑图 生成spring banner的工具 http://patorjk.com/software/taag http://www...
前言 用java8已经有好一段时间了,不少新特性都已经使用过了,唯独还没用过java8中新的时间包,今天写代码的时候正好需要涉及到时间,那就来研究一下java8中新的时间包(java.time)吧,本博客参考的内容来自Oracle官网,连接如下: http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367....