![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 71
xiejueheng
这个作者很懒,什么都没留下…
展开
-
Tomcat源码阅读(二)Bootstrap
Catalina的引导加载程序。这个应用程序构造一个类装入器使用加载Cataline内部类(通过收集在”catalina.home”下的server目录下的所有Jar文件),并开始容器的定期执行。这种迂回的方法目的是保持Catalina内部类(和任何其它类的依赖,如XML解析器)脱离系统class路径,因而在应用程序级别的类不可见(翻译自注释)。程序入口:main方法public static vo原创 2015-05-18 12:55:12 · 490 阅读 · 0 评论 -
Tomcat源码阅读(一)初始化
近来,我开始阅读tomcat的源码,感觉还挺清晰易懂;为了方便理解,我参考了网上的一些文章,把tomcat的组成归纳一下;整个tomcat的组成如下图所示:Tomcat在接收到用户请求时,将会通过以上组件的协作来给最终用户产生响应。首先是最外层的Server和Service来提供整个运行环境的基础设施,而Connector通过指定的协议和接口来监听用户的请求,在对请求进行必要的处理和解析后将请求的内原创 2015-05-17 23:04:05 · 800 阅读 · 0 评论 -
Log4j的配置
在启用日志记录之前,你必须先配置log4j。配置Log4j意味着增加appender(destinations/targets/handlers)类别(logger)和分配每个appender布局(格式化程序)。类别可以在任何顺序创建和配置。特别是,一个类别将找到并链接到它的后代即使是实例化。您还可以配置类别以编程方式登录到特定appender使用类别对象的addAppender()方法。添加多达你原创 2015-05-17 22:44:03 · 449 阅读 · 0 评论 -
Tomcat源码阅读(五)Service
描述Tomcat的StandardService主要方法和作用原创 2015-06-21 12:06:28 · 441 阅读 · 0 评论 -
Tomcat源码阅读(三)Catalina
上一节说到,Bootstrap执行的加载操作,实际都需要反射执行Catalina类方法。现在介绍一下Catalina的主要方法load和start究竟做了些什么。1、loadpublic void load() { long t1 = System.nanoTime(); initDirs();//初始化临时目录 // Before digester - i原创 2015-05-26 20:59:41 · 1752 阅读 · 0 评论 -
Tomcat源码阅读(四)Server
Server的继承关系Lifecycle:通用接口组件生命周期方法 LifecycleBase:Lifecycle接口的基本实现,实现start和stop的状态转换规则。 LifecycleMBeanBase:主要实现JmxEnabled的方法 StandardServer:Server接口的标准实现,当Catalina是deploying和starting时使用(但不是必须)Standard原创 2015-06-08 14:25:22 · 450 阅读 · 0 评论 -
Tomcat源码阅读(三)Catalina.createStartDegester
在研究Catalina之前,首先转一下createStartDegester的解析说明,这是对Tomcat配置文件server.xml的解析并初始化到Tomcat中。本来想自己研究一番,再写阅读心得上来。但发现这个解析过程也是比较复杂,涉及东西挺多的,然后搜了一下其他研究Tomcat源码大神们的心得,发现这篇文章的确不错。详尽介绍了解析xml的过程,值得转载一番。感谢holly2k这位大神的杰作。转载 2015-05-26 18:00:59 · 779 阅读 · 0 评论