源码
文章平均质量分 91
kyfxbl
这个作者很懒,什么都没留下…
展开
-
tomcat源码阅读(二)——ClassLoader及catalina启动
1、ClassLoader结构tomcat的ClassLoader模型如上图,主要是为了满足servlet规范中类隔离的要求(见JSR154的Section9.4、9.6、9.7)1.1 Bootstrap这个类加载器和普通的JAVA应用一样,都是由JVM启动的,加载%JAVA_HOME%/jre/lib下的JAR包,如rt.jar等通常情况下,Bootstrap和Extens原创 2013-09-24 11:24:07 · 1136 阅读 · 0 评论 -
读logback源码系列文章(四)——记录日志
今天晚上本来想来写一下Logger怎么记录日志,以及Appender组件。不过9点才从丈母娘家回来,又被几个兄弟喊去喝酒,结果回来晚了,所以时间就只够写一篇Logger类的源码分析了。Appender找时间再写上篇博客介绍了LoggerContext怎么生成Logger,Logger是logback的核心类,也是所有日志框架的核心类。这篇博客详细介绍一下Logger的各字段和方法,重点介绍Lo原创 2013-09-24 10:57:13 · 4061 阅读 · 0 评论 -
读logback源码系列文章(五)——Appender
明天要带老婆出国旅游几天,所以这段时间暂时都更新不了博客了,临走前再最后发一贴上一篇我们说到Logger类的info()方法通过层层调用,最后委托Appender来记录日志,这篇博客我们就接着说一下,Appender组件是怎么记录日志的实际上Appender可能是logback框架中最重要的组件之一,虽然Logger是记录日志的接口,但是如果一个Logger没有关联到任何Appender的原创 2013-09-24 10:57:23 · 2160 阅读 · 0 评论 -
读logback源码系列文章(六)——ContextInitializer
放了一个长假回来啦,继续写本系列博客这篇博客我们接着上一篇的主题,来介绍一下logback是怎么读取配置文件并初始化整个框架的。还是老规矩,先上总览图从图中可以看到,logback框架的初始化是由ContextInitializer类来负责完成的,而实际进行配置的是GenericConfigurator类,它调用SaxEventRecorder类来负责读取logback.xml文件,然原创 2013-09-24 10:57:29 · 1945 阅读 · 0 评论 -
小读spring ioc源码(二)——ContextLoaderListener
实际开发中,比较多的项目是web项目,这时候加载spring,是在web.xml里配置一个Listener org.springframework.web.context.ContextLoaderListener 这个ContextLoaderListener就是web应用中,加载spring的入口如果不是web应用,一般通过实例化一个ApplicationCo原创 2013-09-24 11:05:39 · 1029 阅读 · 0 评论 -
tomcat源码阅读(三)——ClassLoader背景知识
前几天想了一下,最近主要学习linux和httpd,所以tomcat源码阅读先放一放,可能到9月份左右再继续。不过先把已经写好的几篇陆续贴上来tomcat用到很多ClassLoader相关的代码,如果缺乏这方面的背景知识,阅读源码会遇到很多障碍,所以本文首先总结一下这方面的内容,和tomcat源码的关系不大1 标准的ClassLoader体系1.1 bootstrapboots原创 2013-09-24 11:25:03 · 839 阅读 · 0 评论 -
读logback源码系列文章(一)——对接slf4j
以前也读过一些开源项目的源码,主要是spring和ant,不过那会都没记录下来,也没仔细消化吸收,现在时间久了忘了好多,而且模模糊糊地感觉学到了一些东西,但具体是什么也说不出个所以然来。深刻反省,这样读源码效果太差。前几天决定重新开始读源码,并把读源码的过程和收获记录下来。想了想决定先用1-2个月时间把logback的源码看一下。目的是……,好吧,没什么目的,就是想读一下。大家知道,slf原创 2013-09-24 10:34:06 · 2770 阅读 · 2 评论 -
读logback源码系列文章(二)——提供ILoggerFactory
上篇博客介绍了logback是怎么对接slf4j的,简言之,就是通过下面这行代码return StaticLoggerBinder.getSingleton().getLoggerFactory();slf4j委托具体实现框架的StaticLoggerBinder来返回一个ILoggerFactory,从而对接到具体实现框架上这篇博客就接下来介绍一下,logback的StaticL原创 2013-09-24 10:56:58 · 2660 阅读 · 0 评论 -
读logback源码系列文章(三)——创建Logger
上一篇博客介绍了logback的StaticLoggerBinder类怎么初始化并创建LoggerContext,这篇博客准备接下来介绍一下,LoggerContext怎么创建日志框架真正的核心类Logger。为什么logback框架提供的Logger是树形结构的呢?这就是在LoggerContext里实现的还是先上图,对LoggerContext和周边类的关系有一个整体上的认识从图中原创 2013-09-24 10:57:03 · 2137 阅读 · 0 评论 -
读logback源码系列文章(七)——配置的实际工作类Action
上篇博客介绍了ContextInitializer类如何把框架的配置工作委托给各个Action具体实现类,这篇博客就接下来介绍一下,Action组件是如何进行配置的实际工作的老规矩,先上图如图所示,首先Action是一个抽象类,定义了begin()、body()、end()方法,这些方法如上篇博客所说,是给Interpreter调用的,Interpreter的endElement()方法原创 2013-09-24 10:57:34 · 3050 阅读 · 0 评论 -
读logback源码系列文章(八)——记录日志的实际工作类Encoder
本系列的博客从logback怎么对接slf4j开始,逐步介绍了LoggerContext、Logger、ContextInitializer、Appender、Action等核心组件。跟读logback的源码到这个程度,虽然不能说精通,不过至少日常的配置,和简单的自定义扩展都不会有问题了。这一篇是本系列博客的最后一节,介绍一下实际记录日志的类Encoder。其实继续深入下去,logback还是原创 2013-09-24 10:57:39 · 1773 阅读 · 0 评论 -
小读spring ioc源码(一)——整体介绍
最近在读spring ioc的源码,用EA画了几张比较清楚的类图,不过由于SPRING的类继承体系比较复杂,图实在太大了,很难截图贴上来,所以只能用文字叙述了,EA图用附件上传了在开始之前,先介绍一个整体的概念。即spring ioc容器的加载,大体上经过以下几个过程:资源文件定位->解析->注册->实例化其中资源文件定位,一般是在ApplicationContext的实现类里完成的,原创 2013-09-24 11:05:09 · 872 阅读 · 0 评论 -
小读spring ioc源码(三)——XmlWebApplicationContext初始化的整体过程
上一篇说到,ContextLoaderListener在web应用启动之后,经过一系列前置步骤,将初始化XmlWebApplicationContext的工作,委托给AbstractApplicationContext。这篇就继续介绍一下,是怎样一步步完成配置文件的加载、解析、注册的先看一下这里的refresh()方法public void refresh() throws BeansE原创 2013-09-24 11:05:45 · 918 阅读 · 0 评论 -
小读spring ioc源码(四)——BeanDefinitionReader
上一篇博客说到,ApplicationContext将解析BeanDefinition的工作委托给BeanDefinitionReader组件,这篇就接着分析一下BeanDefinition的解析过程protected void loadBeanDefinitions(XmlBeanDefinitionReader reader) throws IOException { String原创 2013-09-24 11:06:00 · 872 阅读 · 0 评论 -
小读spring ioc源码(五)——BeanDefinitionDocumentReader
上一篇博客说到,BeanDefinition的解析,已经走到了DefaultBeanDefinitionDocumentReader里,这时候配置文件已经被加载,并解析成w3c的Document对象。这篇博客就接着介绍,DefaultBeanDefinitionDocumentReader和BeanDefinitionParserDelegate类,是怎么协同完成bean的解析和注册的B原创 2013-09-24 11:06:15 · 1170 阅读 · 1 评论 -
tomcat源码阅读(一)——环境搭建
一、工具准备需要SVN、Maven、JDK、Eclipse、M2Eclipse二、下载源码及发布包源码在:http://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_7_0_27/发布包在:http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.27/bin/说明:下载原创 2013-09-24 11:23:57 · 957 阅读 · 0 评论 -
Hexo插件机制分析
最近想开发一个rest API的框架,需要用到插件机制。正好前段时间在玩Hexo,觉得它那套机制还不错,于是参考了一下。本文总结一下它的实现思路原创 2015-08-19 21:04:16 · 2483 阅读 · 1 评论