觉悟吧,少年!

——认真编码,认真生活!

排序:
默认
按更新时间
按访问量

CountDownLatch在NioEndpint中的应用

背景Tomcat源码中多处用了java.util.concurrent包中的类,用以处理多线程环境下的流程控制。近日分析了下NioEndpoint源码,本文将以此类为背景,膜拜下Java大神们使用CountDownLatch并发控制的手法,其实也就是简单的实际应用,算不上高深。类图框架 NIO...

2017-12-30 09:39:05

阅读数:84

评论数:0

Tomcat源码分析-JMX(终)

背景前几节分析了Tomcat中跟JMX有关的内容,昨天继续分析了JMX的架构图,以及JVM启动JMX的流程,整理出JDK中相关的类图,以巩固对JMX的理解。架构图sun公司定义的JMX架构图,百来的图片如下:纵观上图,以虚线分割,分为三层: 第一层,远程管理层应用,即访问JMX的应用,如jco...

2017-06-27 11:37:46

阅读数:1560

评论数:0

Tomcat源码分析-JMX(下)

背景上一节分析了Registry类的功能,其引用management包中所有的类,也就是JDK支持JMX功能的类,本节将继续分析类图的其他部分。类图分析JMX的类图截取如下:分析类图得到几点信息如下: 第一,JmxBeanServer和DefaultMBeanServerInterceptor类...

2017-06-25 09:20:47

阅读数:1270

评论数:2

Tomcat源码分析-JMX之Registry类(中)

背景“Tomcat源码分析-StandardServer类”,这一篇文章的分析中,我们知道StandardServer类的实例被注册到JMX的服务器的过程,是通过Tomcat定义的Registry类完成的,那么这个类又是如何完成JMX相关功能的呢,本文就记录一下本人在源码跟踪过程中的分析结果。流程...

2017-06-23 15:29:09

阅读数:1314

评论数:0

Tomcat源码分析-JMX(上)

背景从LifecycleMBeanBase 类分析那一篇文章中,我们已经知道 Tomcat的所有的组件都实现了JmxEnable接口,并且在初始化过程中通过Registry类注册成为Java Managed Bean 了。那么JMX在Tomcat是的运用原理是什么呢?今天就这个问题进行了实践和探...

2017-06-22 18:09:52

阅读数:472

评论数:0

Tomcat源码分析-catalina.home和catalina.base

背景Bootstrap启动的时候使用了两个系统变量catalina.home和catalina.base,从官网和源码中的注释可以知道这两者的区别主要是:catalina.home是Tomcat产品的安装目录,而catalina.base是tomcat启动过程中需要读取的各种配置及日志的根目录。默...

2017-06-20 09:19:46

阅读数:2402

评论数:0

Tomcat源码分析-StandardServer类

类概况StandardServer类是Tomcat初始化流程中的第一个组件,本章需要结合“Tomcat源码分析-初始化流程” 的时序图继续看。时序图中Catalina类调用了StandardServer类的init方法,而这个模版方法是调用子类的initInternal类的,所以该类着重关注这个方...

2017-06-19 17:37:42

阅读数:749

评论数:0

Tomcat源码分析-LifecycleMBeanBase

类概况关注这个类是因为上一回跟踪了AccessLogValve类,它是LifecycleMBeanBase的一个子类,搞清楚这个类的各个子类结构,也就理顺了Tomcat容器中各个组件的协助流程了。管中窥豹,还是先从这个顶层抽象类开始吧。 这个类的结构很简单,类图绘制如下:父类LifecycleB...

2017-06-16 14:21:19

阅读数:726

评论数:0

Tomcat源码分析-AccessLogValve类

类概况Tomcat的server.xml中,Host节点的子元素名称是Valve,用来定义一系列的处理器,AccessLogValve就是用来记录容器访问请求的日志处理类。Valve,本意是阀门的意思,AccessLogValve是处理生成访问日志的,梳理它的类图如下: 它的所有的成员变量大多都...

2017-06-15 18:39:52

阅读数:1737

评论数:0

Tomcat源码分析-Java原生态log运用

背景调试tomcat源码过程中,控制台日志打印的都是INFO级别的日志,于是就想修改下日志级别,打印Digester类的DEBUG级别的日志,便于观察Digester类解析server.xml的流程,顺便跟踪了一下tomcat使用日志的流程,整理如下。使用方法Java提供了原生态的日志工具包jav...

2017-06-07 16:19:02

阅读数:491

评论数:0

Tomcat源码分析-初始化流程

主要类图Tomcat的Bootstrap类关联的几个主要类整理如下:初始化入口类是Catalina,它的load()完成初始化所有类的过程,主类StandardServer类有两个父类,它提供了生命周期的管理方法,同时也具有ManagedBean的功能。 进一步分析得到初始化过程中的时序图。初始...

2017-06-06 16:15:33

阅读数:735

评论数:0

Tomcat源码分析-CatalinaProperties类

功能这个类很简单,就是一个属性获取的公共类。但是用法却很巧妙,代码相当优雅,所以忍不住想要再说说这个类。它的功能是管理catalina.properties类文件中的配置属性获取,只有一个方法getPropertity(String name).代码结构类图和流程图如下:代码启示录我认为这个类的高...

2017-06-05 11:25:23

阅读数:627

评论数:0

Tomcat源码分析-Bootstrap类

背景本人真正从事Java开发工作已经五年了,最近一直在思考五年的工作经历,技术应该达到一个什么样的水平的呢。运用SWOT方法,剖析了一下自己目前的现状: 1 能快速熟悉一个项目,厘清项目框架、主要功能模块,找到值得学习的设计思想,发现明显的设计缺陷。 2 有代码洁癖,看到烂代码就有重构的...

2017-06-02 17:57:53

阅读数:916

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭