Source Codes Study
文章平均质量分 72
iteye_16248
这个作者很懒,什么都没留下…
展开
-
Source Code Study序言
Source Code Study序言:有段时间了,心里总是抑制不住地研究些源代码,从最开始的MySql开始(想复习C++相关知识),后来发现了Sqlite这个"小鬼",很是惊喜!这两个都是与C++相关的.后来过了些日子,被Tomcat的配置折磨的不行了,就心想起想研究Tomcat源码的念头,心想研究这个要好的多,不仅仅是对Tomcat的配置会烂熟于心,另外的收获就是对Java EE相应规范的理解...2008-04-06 17:54:50 · 81 阅读 · 0 评论 -
Acegi(十): securityContextHolderAwareRequestFilter结
在Acegi(八)和Acegi(九)里, 我们对securityContextHolderAwareRequestFilter有了个较为全面的剖析.在这篇做个小结, 也把一些漏落补上. 在上两篇里,我们实际上是介绍了三个类:SecurityContextHolderAwareRequestFilter、SecurityContextHolderAwareReq...2009-03-04 21:46:17 · 164 阅读 · 0 评论 -
Acegi(十一): 借鉴Acegi的Exception的异常处理
今天改项目中的一个问题时, 不由自住地想到了Acegi异常处理. 现在相比项目中的异常处理后, 很是感叹Acegi对异常的处理呀. 先大致回忆下Acegi里的异常处理. 这里说Acegi的异常处理是指围绕ExceptionTranslationFilter展开的, 当然别的地方也有,暂时不做考虑. Acegi配置中在filterInvocationIntercepto...2009-03-05 11:16:41 · 118 阅读 · 0 评论 -
Tomcat源码"历险"之protected关键字理解
周末了有大块时间,我又忍不住地想鼓捣下Tomcat的源码,像往常一样又是从头看起:org.apache.catalina.startup.Bootstrap类.顾名思义,这个类是Tomcat启动时的main方法所在类.这个类本身没什么特别的,可看着看着,发现有点不对:怎么这个类里ClassLoader类型的三个属性是用protected来修饰的,而这个类本身又是不能再被extends的(也就是用f...2008-06-30 09:17:11 · 77 阅读 · 0 评论 -
Acegi(十二): anonymousProcessingFilter有什么好玩的?
在这篇博客中, 我们接着看另一个Filter, anonymousProcessingFilter. 1, 为什么要配置这个? 它能给我们带来什么好处? 为了解决这个问题,看了下Acegi的文档, 但说实在的, 由于文档中用是"convenient"和"nice"这样的词来描述这个filter的好处,我现在还感觉不到. 这里把我现在给想到的理由总结一下....2009-03-09 17:47:02 · 205 阅读 · 0 评论 -
研究源码的新天地: 为什么研究源码?
把前些列出的一个写作提纲丰满下, 贴在这里. ---------------------------------------------- 为提高自己的水平,通过研究源码,学习优秀开源框架时间不短了. 其中滋味有酸,有甜,但更多的是苦和辣. 不过好像人生就是这样,人生不如意者十之八九, 我们要善于发现并学会苦中做乐,那样生活才能回馈咱们更多的暖色. 前段时间Google时,...2009-03-11 21:03:41 · 143 阅读 · 0 评论 -
研究源码的新天地: 研究源码的痛苦
上篇中,写了出于什么考虑我一直在研究一些开源项目的源码,也就是研究源码的动力有哪些. 在这么长的研究过程中很痛苦的, 这些痛苦源自于研究过程中的阻力,又有哪些阻力呢? 归纳起来有如下几个方面. 1, 项目大, 无头绪, 有些遥不可及. 刚开始时有些不知天高地厚,tomcat好像是第一个动心要研究的家伙,整个源码找到后,光往Eclipse里配置就鼓捣了好久,后边配置...2009-03-12 15:50:53 · 218 阅读 · 0 评论 -
Acegi(十三): 让系统记住我
经过一段时间的总结, 对Acegi的初步研究终于到了最后一个常见Filter了,即rememberMeProcessingFilter. 顾名思义, rememberMeProcessingFilter就是想让系统记下来当前登录的用户,不至于以后每次进系统时都要输入用户名密码.这方面的例子相信大家已有体会,我也就不必在些赘述. 先简要地说下原理. 假定用户登录时选择...2009-03-13 09:59:03 · 106 阅读 · 0 评论 -
研究源码的新天地: 避害趋利
前两篇分别描述了"为什么要研究源码"和"研究源码的痛苦", 这里接下来看最后一篇"避害趋利", 意指为什么那个电子书让我既能支持源码研究,又不至于受那么的苦遭那么多的罪, 用数学来描述,就是尽量使(动力 - 阻力)差值最大化. 那这本电子书在我研究源码的道路上具体又有什么魔力呢? 下面我将结合两篇所列要点,避害趋利地分析下下. 电子书的链接为:http://www.discursiv...2009-03-14 14:48:07 · 81 阅读 · 0 评论 -
CJC(一): ToStringBuilder两种方法用法优缺点及一个问题
CJC是Common Java Cookbook的缩写, 这是一本介绍ApacheCommon开源项目的电子书 . 在这里,CJC代表我对其源码研究的系列博客.为什么要研究它?若有兴趣请看另一篇博客,避害趋利.------------------------ 这是第一篇研究ApacheCommon源码的博客, 先从一个最简单的开始,即围绕Object类里的toString方...2009-03-15 20:37:52 · 105 阅读 · 0 评论 -
CJC(二): abstract、子类与多态的单例模式
CJC是Common Java Cookbook的缩写, 这是一本介绍ApacheCommon开源项目的电子书 . 在这里,CJC代表我对其源码研究的系列博客.为什么要研究它?若有兴趣请看另一篇博客,避害趋利.------------------------ 接着上篇,这里介绍"abstract与设计模式", abstract有啥好介绍的? 与设计模式? 为了解决这...2009-03-16 10:33:34 · 107 阅读 · 0 评论 -
Debug地研究Hibernate分页功能过程中的另外收获
1, 如用MySQL,其分页sql是啥样的: select* from table limit 5,10, 它取从6开始的5条记录。2, CriteriaImpl 文件里,Subcriteria 内部类中“CriteriaImpl.this.setFirstResult(firstResult);”写法。想起来了, 这是为了在内部类Subcriteria调用外部类CriteriaIm...2009-12-17 15:04:20 · 63 阅读 · 0 评论 -
研究下Spring中AOP的实现?
碰到一个AOP的问题, 见“用Spring的AOP定义Pointcut时的问题?”中的描述。 解决这个问题的过程中, 不自觉地又动了想瞧瞧源码看其怎么实现的念头。 于是经历千辛万苦,在Eclipse中配置了一个Project(见附件)用来研究。 主要源码出处: http://www.java2s.com/Tutori...2010-06-03 17:57:48 · 60 阅读 · 0 评论 -
Acegi(九): 子类SavedRequestAwareWrapper
上篇中我们对securityContextHolderAwareRequestFilter的丰富多彩有了个体验,最后对这个类的名字也做了一个望文生义的解释. 本篇中我们将接着看上篇提到的子类,即SavedRequestAwareWrapper.这个类在父亲的基业上又有什么新的突破呢? 这得从它的贤内助说起, 即这个子类的属性savedRequest. 呵呵, 这也正是组合的好处. ...2009-03-02 22:27:48 · 272 阅读 · 0 评论 -
Acegi(八): securityContextHolderAwareRequestFilter
上篇中我们说了下LogoutFilter的配置, 这篇里接着看另一个常见的配置SecurityContextHolderAwareRequestFilter. 下面先看怎么把它配置到Acegi里. 应该说对securityContextHolderAwareRequestFilter的配置要比LogoutFilter的更简单些. 有以下两步: Ste...2009-03-01 22:03:49 · 138 阅读 · 0 评论 -
Acegi(七): LogoutFilter配置及几个问题
这些天有点懒散, 想的也得振作一下吧. 从最好容易的部分下手, 这样想到Acegi.前段时间的博客里写了acegi的最简单配置,以及围绕这些简单配置的一点点源码层面的钻研. 而实际项目中的配置光这些是不够的, 比如说用户信息及权限还有系统的访问权限都是要放到数据库里的,这样在做用户登录与权限认证时就要hit数据库了, 这方面的配置又怎样呢? 不过这篇博客中打算写与数据库扩展相...2009-02-28 18:49:11 · 177 阅读 · 0 评论 -
Tomcat源码研究之环境搭建
想研究Tomcat的源码,昨天在家试了试,只能看到静态的code,那样虽然可以看,但总觉得不够吸引人.毕竟看静态的Code时,只能自己看调用关系,跟着跟着就"迷路"了.于是想着能不能在Tomcat启动/运行时看具体的Code调用关系,那样就太爽了,一个是把Benz停在那让你看,一个是把钥匙给你,你可以看着Benz来感受.两者的感受真是天壤之别!!可昨晚没实现这个开Benz梦,今天早早地就到办公室了...2008-04-07 10:30:52 · 70 阅读 · 0 评论 -
Derby源码初体验
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"又是什么意思呢? ...2008-04-08 09:07:13 · 255 阅读 · 0 评论 -
从源码层面来看load与get的区别(三): Hibernate源码研究碎得(7)
LoadEventListener中的LoadType接着上一篇,我们来看方法fireLoad(event, LoadEventListener.GET);第一个参数就是前面已经准备好的LoadEvent对象,我们重点看下第二个参数.这个fireLoad的签名是这样的: fireLoad(LoadEvent event, LoadType loadType)追着看下LoadType的定义,有点...2008-05-16 09:10:21 · 87 阅读 · 0 评论 -
集万千宠爱于一身的SessionImpl:get研究(四): Hibernate源码研究碎得(8)
上一篇重点介绍了LoadEventListener里的LoadType这个static final类及其在LoadEventListener里的定义的几个对象后,简单地介绍了DefaultLoadEventListener里的三个static final属性,现在在这篇中将重点研究这里的onLoad方法. 进入onLoad方法后,第一句就是从event中getSession,这个返回值以Sess...2008-05-17 13:57:36 · 599 阅读 · 0 评论 -
Acegi(一):酝酿将近一年后的提高
过年后回到公司,工作上的事还没有正式开始, 于是就又开始学习Acegi这个框架了. 说起这个框架,真是有太多话想说:这个框架是除SSH外我自己独立学习分析的第一个框架, 从这方面第一篇博客到现在快一年了, 这么长时间里断断续续在用, 也偶尔心血来潮地以debug方式"研究"一番, 但收获很小。大概是酝酿够了吧,今天有了个突破性地进展. 这些天再看那些类/接口也亲切多了,...2009-02-11 20:54:44 · 56 阅读 · 0 评论 -
Acegi(二): 迷茫后,写还是不写?
昨天写了篇Acegi方面的开头,由于需要些东西,上网搜时, 却"情理之中而又意料之外"地发现了05年有人写的Acegi方面的东西。别人写的很详细,从接触Acegi开始困扰很久的时间人家很通畅地表达了出来.我一下有些蒙了: 别人这么早就写了,写的还不错,而我现在才开始写也不赶趟了,而且还有被人家取笑的可能. 这怎么办?写还是不写. 怎么写? 犹豫中翻看别人写的东西,发现他们...2009-02-12 09:19:20 · 63 阅读 · 0 评论 -
Acegi(三): Acegi? Who are you?
Acegi是个什么? 是一个基于Spring的开源框架,用来做安全控制. 基于Spring?能不能在不用Spring的情况下配置Acegi呢?Acegi官网上有一个链接:Use WithouSpring,看来是可以的,自己还没有动手做过.实现安全控制? 原理是什么? Servlet的Filter和AOP机制: 利用Filter, Acegi实现了基于Web实用的URI保...2009-02-13 08:38:04 · 72 阅读 · 0 评论 -
Acegi(四):Acegi初体验及初解剖
上篇博客中,我们以静态地角度对Acegi的核心概念及其实现上的核心部件进行了谈讨,本这篇中,我们将结合一个Web程序来体会并介绍下在Web项目中配置Acegi里都有哪些关键点。 我们知道Acegi可以多种实用场景,但现在用的最多的还是在Web项目中,这里不再介绍配置的具体步骤,直接将一个配置好的Web项目传了上来(只做了那些必要的配置),见附件,不出意外的话,这个例子可以在Ec...2009-02-14 12:03:45 · 63 阅读 · 0 评论 -
CoreJava: 第一次用LinkedHashSet带来的思考(一)
用Java虽说时间不是很长,但也有将近两年, 不过这个LinkedHashSet还是第一次用,以前只是在学Java的Collections时知道有这么个类,它可在Set的基础排重的基础上有List的保持原有顺序的作用.理解归理解,但实际中还是一直也没遇到真正用它的场景. 在这篇博客里,很遗憾与这个类仅仅是擦肩而过,也没能真正地往下想想. 在上面那博客里提到Linke...2009-02-14 19:34:42 · 104 阅读 · 0 评论 -
CoreJava: 第一次用LinkedHashSet带来的思考(二)
在第一次用LinkedHashSet带来的思考(一)中,顺着LinkedHashSet的保序功能是怎么实现这一问题看了HashSet源码, 注意到HashSet的一个构造方法前没有写访问修饰符,这样也就只有跟HashSet在同一个包的类才能访问这个构造方法了.为了下面的谈论方便,我们将这种没写访问修饰符的情况称为"包修饰符",当然也有叫"默认修饰符"的,但个人觉得还是这个"包修饰...2009-02-15 21:05:47 · 72 阅读 · 0 评论 -
Acegi源码研究(五):七剑下天山
在Acegi初体验及初解剖(http://rmn190.iteye.com/blog/332711)里,通过对web.xml和applicationContext-acegi-security.xml的跟踪,我们得出被Acegi拦截下的请求最终交到了filterInvocationDefinitionSource配置下的几个Filter的实现类来处理. 它们是怎么处理这个请求的呢? ...2009-02-17 23:10:27 · 167 阅读 · 0 评论 -
Acegi源码研究(六): Acegi编码/设计碎得
前些天通过一个Acegi的Web实例,我们感受了下受保护的好处,也通过一步步的跟踪,感觉到Acegi里"七剑"的存在.本来是想着继续再往下做扩展的,后来一想还是回过头来整理下研究Acegi过程中的碎得吧,毕竟这样的碎得写起轻松些,我也稍稍放松下. 信马由缰地溜达了下,又想起了当时一开始看Acegi源码时的如下问题: 1, FilterToBea...2009-02-18 22:28:49 · 101 阅读 · 0 评论 -
Spring下配置job
没什么可说的, 今天把以前配置的一个job重新整理了下,用maven管理了。 应该说用Maven的特性更多一些:打成的jar是可运行的, 打成的jar包里包括了运行所依赖的jar。 执行“mvn package”后, 再运行“java -jar .\target\rmn190Proj-jar-with-dependencies.jar”命令。 如下输出: ...2010-07-20 15:58:20 · 69 阅读 · 0 评论