2008-06-30

Tomcat源码"历险"之protected关键字理解

关键字: 是tomcat项目组的疏忽?
周末了有大块时间,我又忍不住地想鼓捣下Tomcat的源码,像往常一样又是从头看起:org.apache.catalina.startup.Bootstrap类.顾名思义,这个类是Tomcat启动时的main方法所在类.这个类本身没什么特别的,可看着看着,发现有点不对:怎么这个类里ClassLoader类型的三个属性是用protected来修饰的,而这个类本身又是不能再被extends的(也就是用final来修饰的)?   不对呀,这不自绝后路吗?用protected修饰的属性只能在本类或子类中访问,而这个类又给final掉了,protected在此不就多此一举了么?难道说prot ...
上一篇重点介绍了LoadEventListener里的LoadType这个static final类及其在LoadEventListener里的定义的几个对象后,简单 地介绍了DefaultLoadEventListener里的三个static final属性,现在在这篇中将重点研究这里的onLoad方法. 进入onLoad方法后,第一句就是从event中getSession,这个返回值以SessionImplementor类型的变量保存住,如下所示:  final SessionImplementor source = event.getSession();& ...
LoadEventListener中的LoadType 接着上一篇,我们来看方法fireLoad(event, LoadEventListener.GET);第一个参数就是前面已经准备好的LoadEvent对象,我们重点看下第二个参数.这个fireLoad的签名是这样的: fireLoad(LoadEvent event, LoadType loadType) 追着看下LoadType的定义,有点吓一跳,这个类是在接口LoadEventListener中定义的一个static final类型的Class,这还真是第一次见,以前见过在普通类中定义或static或非static内部类 ...
2008-04-08

Derby源码初体验

关键字: derby, sysinfo.*
1,sysinfo.java类:    从最简单的一个command开始,也就是DERBY_HOME和PATH设置完成后,用来check settings的那个command.        1.1看bin\sysinfo.bat脚本文件:        1.1.1 @echo off是关闭cmd的显示.        1.1.2 @REM 是注释吧?看起来是.那光是"rem& ...
想研究Tomcat的源码,昨天在家试了试,只能看到静态的code,那样虽然可以看,但总觉得不够吸引人.毕竟看静态的Code时,只能自己看调用关系,跟着跟着就"迷路"了.于是想着能不能在Tomcat启动/运行时看具体的Code调用关系,那样就太爽了,一个是把Benz停在那让你看,一个是把钥匙给你,你可以看着Benz来感受.两者的感受真是天壤之别!!可昨晚没实现这个开Benz梦,今天早早地就到办公室了,想着趁上班之前把这个梦给实现了.在Eclispe里鼓捣了半天也没弄出来,还是那些静态代码.这怎么办呢?记得以前可以在Tomcat启动时看到它源码的,可一下子忘了怎么弄出来.后来快 ...
Source Code Study序言:有段时间了,心里总是抑制不住地研究些源代码,从最开始的MySql开始(想复习C++相关知识),后来发现了Sqlite这个"小鬼",很是惊喜!这两个都是与C++相关的.后来过了些日子,被Tomcat的配置折磨的不行了,就心想起想研究Tomcat源码的念头,心想研究这个要好的多,不仅仅是对Tomcat的配置会烂熟于心,另外的收获就是对Java EE相应规范的理解,再往深地想更大的收获就是对线程与PoolableDataSoucre与JNDI实现的理解,呵呵.这么多的精品知识,那不岂不美哉!又是数据库,Derby!那天无意中发现可以下载De ...