自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

自由的天空

周应波点滴记录

  • 博客(20)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 struts1源码分析(三)请求处理主线

在初始化主线一文中,我们详细分析了框架的初始化过程。本文将从Struts的另外一条主线出发,分析框架的实现原理。上文的初始化主线是一个铺垫,它将框架运行时需要的数据和组件准备完毕,为请求处理主线打下基础。本文基于Struts1.2.8版本,1.3.x系列的差异性将另文说明。 [请求处理接口]在整体概览和核心组件一文中,我们提到了Struts框架抽象出统一的业务逻辑基类,用户可以...

2014-01-04 13:34:49 168

原创 struts1源码分析(二)初始化主线

在Struts1整体概览和核心组件一文中,我们提到了Struts1框架的两条主线:初始化主线和请求处理主线,本文将探寻Struts1框架初始化这条主线。本文使用的Struts版本为1.2.8, 不同版本会略有差异,1.3.x系列对请求处理进行优化,差异性将另文叙述。 [问题]在介绍初始化过程之前,我们先来思考几个问题。1. 如何在web应用中植入框架的初始化过程?2. 如何...

2014-01-01 01:30:41 181

原创 struts1源码分析(一)整体概览和核心组件

       今年12月Apache官方正式宣布Struts1 EOL( End-of-Life),标志着这个里程碑式的框架正式告别历史舞台。从Struts1第一版发布,至今已十来余年,Apache在2008年底发布了最后一个版本1.3.10。这几年随着Struts2和Spring MVC等框架的红红火火,Struts1已被人慢慢淡忘。 从今天的角度来看Struts1,或许你能提出一堆设计上的...

2013-12-29 22:02:39 328

原创 多线程批量检测未注册域名

最近想注册一个域名,使用万网尝试了很多域名,基本都已被注册。之前听说双拼域名很火,所以想写个脚本,看看哪些双拼域名还未被注册。 一、查询接口网上搜索了一下,万网的域名查询接口比较简单易用,查询URL格式为: http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=aaa.com返回值及含义:210 : Domain nam...

2013-10-28 17:27:45 605

原创 Struts文件上传报OutOfMemoryError问题分析

好久没有更新博客了,最近项目也接近尾声了,今天记录一个case处理过程。 一、问题描述1. 异常信息 java.lang.OutOfMemoryError: Java heap space java.io.ByteArrayOutputStream.<init>(Unknown Source) org.apache.commons.fileupload....

2013-09-27 10:40:23 276

原创 jackson快速入门

1. 背景 目前维护的产品使用jackson处理json,现整理一下jackson相关资料,希望对初次接触jackson的新手有所帮助。    jackson主页: http://jackson.codehaus.org/    jackson document: http://wiki.fasterxml.com/JacksonJavaDocs    JacksonInFiveMinute...

2012-08-02 15:55:40 324

ibatis源码学习(五)缓存设计和实现

缓存不算是ibatis框架的一个亮点,但理解ibatis的缓存设计和实现对我们合理使用ibatis缓存是很有帮助的。本文将深入分析ibatis框架的缓存设计和实现。缓存的使用参见官方文档:[url=http://ibatis.apache.org/docs/dotnet/datamapper/ch03s08.html]Cache Models[/url]。本文使用的ibatis版本...

2012-04-07 21:06:04 143

原创 ibatis源码学习(四)动态SQL的实现原理

动态SQL是ibatis框架的一个重要特性,本文将深入分析ibatis框架中动态SQL的实现原理。动态sql的使用参见官方文档:[url=http://ibatis.apache.org/docs/dotnet/datamapper/ch03s09.html]Dynamic SQL[/url]。本文使用的ibatis版本为[color=red]2.3.4[/color]。[...

2012-04-03 16:47:21 145

ibatis源码学习(三)参数和结果的映射原理

在[url=http://learnworld.iteye.com/blog/1447284]ibatis整体设计和核心流程[/url]一文中,我们提到了ibatis框架中sql的执行过程,sql执行前后有两个重要步骤: 参数对象映射到sql执行参数,sql执行结果映射到结果对象。本文将深入分析ibatis框架中参数和结果的映射原理。[size=medium][b]问题[/...

2012-03-18 23:10:44 244

ibatis源码学习(二)初始化和配置文件解析

在[url=http://www.iteye.com/topic/1121467]ibatis整体设计和核心流程[/url]一文中,我们提到了ibatis框架的初始化过程,本文将深入分析ibatis框架的初始化和配置文件解析过程。本文使用的ibatis版本为2.3.4,不同版本间会略有差异。[b][size=large]问题[/size][/b]在详细介绍ibatis初始化过程之前,让...

2012-03-11 00:15:38 150

ibatis源码学习(一)整体设计和核心流程

本文主要从ibatis框架的基本代码骨架进行切入,理解ibatis框架的整体设计思路,各组件的实现细节将在后文进行分析。[b][size=large]背景[/size][/b]介绍ibatis实现之前,先来看一段jdbc代码:[code="java"] Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:my...

2012-03-09 08:48:23 263

j.u.c同步器使用总结

从jdk1.5开始,java.util.concurrent提供了在并发编程中很常用的实用工具类,包括几个小的、已标准化的可扩展框架,以及一些提供有用功能的类。没有这些类,并发功能会很难实现或实现起来冗长乏味。本文将关注j.u.c中提供的四种同步器: CountDownLatch, CyclicBarrier, Semaphore, Exchanger,它们用于辅助实现一些常见的同...

2012-02-26 12:02:28 106

BTrace使用总结

[b][size=large]一、背景[/size][/b] 在生产环境中可能经常遇到各种问题,定位问题需要获取程序运行时的数据信息,如方法参数、返回值、全局变量、堆栈信息等。为了获取这些数据信息,我们可以通过改写代码,增加日志信息的打印,再发布到生产环境。通过这种方式,一方面将增大定位问题的成本和周期,对于紧急问题无法做到及时响应;另一方面重新部署后环境可能已被破坏,很难重新问题...

2012-02-11 22:43:43 220

java虚拟机常用命令工具

[size=medium][b]一、概述[/b][/size] 程序运行中经常会遇到各种问题,定位问题时通常需要综合各种信息,如系统日志、堆dump文件、线程dump文件、GC日志等。通过虚拟机监控和诊断工具可以帮忙我们快速获取、分析需要的数据,进而提高问题解决速度。 本文将介绍虚拟机常用监控和问题诊断命令工具的使用方法,主要包含以下工具:[table]|jps|...

2012-01-30 20:06:12 182

apache启动报错原因和解决方案

一. 现象今天项目搭建测试环境时,启动apache报错,错误日志如下:[code="java"][wolf@ccbudev150133x bin]$ ./startws Start server copy ...... OK!Start JBoss configuration copy ...... OK![color=red](13)Permission denied:[...

2011-11-04 17:37:28 2770

apache rewrite模块安装和使用

最近工作需要用到apache rewrite功能,之前本机已经安装apache,但没有安装rewrite模块。下面总结一下rewrite模块的安装过程和相关知识。本机已安装的apache版本为2.2.16,操作系统为ubuntu10.10。一、 安装过程1. 在apache源码目录下查找mod_rewrite.c文件。find . -name mod_rewrite.c2....

2011-11-01 23:54:43 686

tomcat学习系列(1)---tomcat事件处理机制

最近在阅读“how tomcat works”这本书,结合tomcat7的源码进行学习。对于学习的收获,将通过“tomcat学习系列”记录下来,和大家一起分享和交流,也算对自己学习的一种促进。闲话不多说,正文开始。 Catalina内部由多个组件组成,启动时各个组件都需要启动,关闭时需要各个组件关闭。如何协作各个组件的初始化、启动、停止、销毁等的一致性,通过各组件实现Lifecy...

2011-04-23 17:45:45 192

spring任务调度方法之Quartz

[b]一、Quartz简介[/b] Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等。Spring对Quartz的集成与其对JDK Timer的集成在任务、触发器和调度计划的声明式配置方面等都非常相似。 Quartz的核心由两个接口和两个类组成:Job和Scheduler接口,JobDetail和Trigger类。不...

2010-11-01 02:40:04 106

spring任务调度方法之JDK Timer

一、基本概念任务(job):需要被调度以指定的时间间隔运行的任务单元。触发器(trigger):引发任务运行的条件。调度计划(schedule):一个任务和用来管理这个任务的一组触发器的集合。通常一个任务在他的调度计划中只有一个触发器,所以触发器和调度计划这两个概念通常可以互换。二、spring的两种任务调度方法1. JDK Timer JVM1.3版本后提供的任务调度...

2010-10-26 20:34:38 131

面向对象培训的一点感悟

参加了两天的面向对象设计培训课程,感触最大的不是学到了多少新的设计方法,而是思想上的转变。 平时我们在做需求过程中,需求方看重的是功能有没有做到,能不能按时上线;老板看重的是你做的有多快,上线后有没有故障,这是对你考核的标准;我们程序员能够控制的就是代码的质量。正是有了这些外界压力,我们往往为了赶进度,系统设计上较少,甚至“0设计”,走自己的“敏捷路线”,代码写的...

2010-10-23 21:52:26 203

设计模式-可复用面向对象软件的基础(高清)

最经典的设计模式书籍,介绍23种设计模式,值得一生收藏的好书

2010-11-13

aglet api文档

介绍aglet系统内所有api函数,非常有用

2009-11-28

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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