OpenDoc Series’
Spring 开发指南
V0.8 预览版
作者:夏昕 xiaxin(at)gmail.com
So many open source projects. Why not Open your Documents? J
SpringFrameWork Developer’s Guide Version 0.6
October 8, 2004 So many open source projects. Why not Open your Documents?
文档说明
参与人员:
作者 联络
夏昕 xiaxin(at)gmail.com
(at) 为 email @ 符号
发布记录
版本 日期 作者 说明
0.5 2004.6.1 夏昕 第一预览版
0.6 2004.9.1 夏昕 补充“持久层”内容。
0.7 2004.9.10 夏昕 追加: Webwork / Struts in Spring
增加 PDF 格式文档书签。
修订“依赖注入实现类型”
0.8 2004.9.20 夏昕 增加 AOP 部分
OpenDoc 版权说明
本文档版权归原作者所有。
在免费、且无任何附加条件的前提下,可在网络媒体中自由传播。
如需部分或者全文引用,请事先征求作者意见。
如果本文对您有些许帮助,表达谢意的最好方式,是将您发现的问题和文档改进意见及时反馈给
作者。当然,倘若有时间和能力,能为技术群体无偿贡献自己的所学为最好的回馈。
Open Document,并不是笔者一个人力所能及的事情,欢迎所有读者对文档中的谬误,以及不合
理的地方给予指正。
SpringFrameWork Developer’s Guide Version 0.6
October 8, 2004 So many open source projects. Why not Open your Documents?
Spring 开发指南
前言
2003 年年初,笔者在国外工作。其时,一位与笔者私交甚好的印度同事 Paradeep 从
公司离职去斯坦福深造,临走送给笔者一本他最钟爱的书籍作为纪念。
工作间隙,时常见到他摩娑此书,摇头不止( 印度人习惯和中国人相反,摇头代表肯定、
赞同,相当于与中国人点头。笔者刚开始与印度同僚共事之时,每每组织项目会议,一 屋子
人频频摇头,让笔者倍感压力……J)。
下班后,带着好友离职的失落,笔者夹着这本书走在回家的路上,恰巧路过东海岸,天
色依然明朗,随意坐上了海边一家酒吧的露天吧台,要了杯啤酒,随手翻弄着书的扉页,不
经意看见书中遍布的钢笔勾画的线条。
“呵呵,Paradeep 这家伙,还真把这本书当回事啊”,一边笑着,一边摊开了此书,
想看看到底是怎样的书让这样一个聪明老练的同事如此欣赏。
从此开始,这本书伴随笔者度过了整整一个月的业余时间……..
这本书,也就是出自 Rod Johnson 的:
《Expert One-on-One J2EE Design and Development》
此书已经由电子工业出版社出版,译版名为《J2EE设计开发编程指南》。
半年后,一个新的 Java Framework 发布,同样出自 Rod Johnson 的手笔,这自然
引起了笔者极大的兴趣,这就是 SpringFramework。
SpringFramework 实 际 上 是 Expert One-on-One J2EE Design and
Development 一书中所阐述的设计思想的具体实现。在 One-on-One 一书中,Rod
Johnson 倡导 J2EE 实用主义的设计思想,并随书提供了一个初步的开发框架实现
(interface21 开发包)。而 SpringFramework 正是这一思想的更全面和具体的体现。
Rod Johnson 在 interface21 开发包的基础之上,进行了进一步的改造和扩充,使其发展
为一个更加开放、清晰、全面、高效的开发框架。
本文正是针对 SpringFramework 的开发指南,讲述了 SpringFramework 的设计思
想以及在开发中的实际使用。同时穿插了一些笔者在项目实作中的经验所得。
SpringFrameWork Developer’s Guide Version 0.6
October 8, 2004 So many open source projects. Why not Open your Documents?
目录
Spring 初探.........................................................................................................................................6
准备工作.........................................................................................................................................6
构建 Spring 基础代码 ....................................................................................................................7
Spring 基础语义 ...............................................................................................................................13
Dependency Injection.................................................................................................................13
依赖注入的几种实现类型 .........................................................................................................16
Type1 接口注入....................................................................................................................16
Type2 设值注入....................................................................................................................17
Type3 构造子注入 ................................................................................................................17
几种依赖注入模式的对比总结 .............................................................................................17
Spring Bean 封装机制 ..................................................................................................................19
Bean Wrapper............................................................................................................................19
Bean Factory............................................................................................................................20
ApplicationContext.....................................................................................................................23
Web Context..............................................................................................................................28
Spring 高级特性 ...............................................................................................................................29
Web 应用与 MVC...............................................................................................................................29
Spring MVC................................................................................................................................30
Spring MVC 指南...................................................................................................................30
基于模板的 Web 表示层技术 .................................................................................................44
Web 应用中模板技术与 JSP 技术的对比 ...............................................................................49
输入验证与数据绑定 ............................................................................................................51
异常处理 ...............................................................................................................................62
国际化支持 ...........................................................................................................................64
WebWork2 & Spring.......................................................................................................................68
Quick Start .........................................................................................................................69
WebWork 高级特性................................................................................................................82
Action 驱动模式...............................................................................................................82
XWork 拦截器体系.............................................................................................................87
输入校验...........................................................................................................................93
国际化支持 .....................................................................................................................107
Webwork2 in Spring......................................................................................................110
Struts in Spring.......................................................................................................................118
数据持久层 ..................................................................................................................................127
事务管理..................................................................................................................................127
持久层封装..............................................................................................................................131
JDBC.....................................................................................................................................131
Hibernate in Spring........................................................................................................139
ibatis in Spring..............................................................................................................146
Aspect Oriented Programming..................................................................................................150
AOP 概念...................................................................................................................................150
AOP in Spring........................................................................................................................153
SpringFrameWork Developer’s Guide Version 0.6
October 8, 2004 So many open source projects. Why not Open your Documents?
Dynamic Proxy 与 Spring AOP ..........................................................................................153
CGLib 与 Spring AOP.........................................................................................................163
AOP 应用 .............................................................................................................................165
DAO Support............................................................................................................................169
Remoting...................................................................................................................................169