前 言
关于Spring
Spring为Java世界带来了一场震撼性的技术革新,它颠覆了传统Java应用开发的方式,影响和正在影响着Java开发者思考问题的方法。从2004年发布第一个版本以来,Spring逐渐占据了Java开发人员的视线,博得了开源社区一片赞誉之声,开源社区里“春”城无处不飞花。
Spring以反向控制和AOP为框架和核心,统一了应用对象的配置、查找、生命周期管理等工作,清晰地划分出业务逻辑与基础服务两者不同的关注面,开发人员可以使用简单Java对象轻松拥有EJB一样强大的功能。
Spring是一站式的开发框架,它通过自身实现和第三者集成两种途径提供了Java企业应用展现层、业务层、持久层等各项技术。
在业务层里,Spring提供了一个相当完善的解决方案,这包括声明式事务、远程服务、JMS、邮件发送、任务调度多种企业服务。
在展现层里,Spring自身提供了一个出色的Spring MVC框架,该框架和流行的其他MVC框架相比毫不逊色。此外,Spring还集成了各种流行的Web框架,这包括Struts、WebWork、JSF、Tapestry等。
在持久层里,Spring自身提供了Spring JDBC,它大大降低了JDBC API的使用,此外还提供了对JPA、Hibernate、iBatis、JDO、Toplink等持久化技术框架的集成。此外,Spring还提供了一个位于具体持久化技术之上的DAO封装层,借助这一封装层,可以制定出和具体的底层实现技术无关的DAO接口。
从2004年以来,Spring经历了翻天覆地的变化,承载了众多新功能的Spring 2.0在历时一年持续开发后,于2006年10月正式发布。在此之后,Spring新功能的添加和旧功能的调整一直没有间断过,2007年5月,Spring 2.1版本发布。从Spring令人目不暇接的升级更新中,我们可以感受到Spring开发团队以及Spring开源社区的活跃。
本书的特点
揭示内幕、深入浅出:笔者对Spring的源码进行了彻底的分析,深刻揭示了Spring框架的技术内幕,让读者知其然,更知其所以然。Spring中许多设计经验、技巧、模式具有很高的借鉴性,在透彻学习Spring体系结构的同时,读者可以直接将这些方法引借到具体的程序开发中。
同步更新、与时俱进:虽然在2006年初就发布了Spring 2.0的里程碑版本,后来又发布了多个RC版本(候选版本),并最终于2006年10月发布了Spring 2.0的正式版本。在正式版本发布后,Spring又以Spring 2.0.x的形式陆续发布了5个小版本,在2007年5月发布了Spring 2.1正式版本。新功能的添加以及旧功能的调整从来就没有停止过。笔者在本书写作过程中时刻关注Spring新版本功能的变化,并及时调整全书内容与其同步,目前全书内容保持和Spring 2.1版本同步。此外,Hibernate已经更新到3.2版本,Struts更新到2.0版本,XFire、JPA已经成为新兴的受欢迎技术,本书在集成第三方技术时也和最新版本进行同步。
突出重点,淡化边缘:虽然全书洋洋洒洒700余页,我们没有片面追求内容的面面俱到,相反,我们特别注意内容的剪裁和取舍。对于实用性强的知识点深入分析、深度挖掘,而对于不常使用的知识点到为止,甚至不纳入本书的范围。举例来说,我们对使用XFire开发基于Spring的Web Service应用、Acegi安全控制框架以及在Spring中使用JPA这些实用性强的技术都进行了深入的分析,而对如何集成EJB、JMX、JCA等这些不常使用的功能完全不涉及。很好地做到了实用性和深入性二者的统一。
理论透彻、面向实践:本书在透彻分析原理、讲解技术知识点的同时,特别注意与实际应用的结合,笔者将自身丰富的实践经验糅合到全书的相关知识点上,很好地做到知识讲解和实践经验的结合。让读者在掌握纯技术知识的同时,能够对如何活用技术做到胸有成竹。如笔者在第13章讲解任务调度的内容时,专门辟出13.6小节讲解实际应用中任务调度的使用经验;在第14章中讲述使用JavaMail发送电子邮件时,专门通过第14.4小节讲述了在实际应用中发送邮件的各种注意事项。此外,我们还适时提供了“实战经验”的插文,它们在不影响上下文连贯性的同时让读者学习到相关知识的实战经验。诸如此类以实际应用为导向的内容贯穿全书,这是本书区别于其他书籍特色之一。
代码简洁、图例丰富:全书的代码在排版布局以及内容的剪裁上颇费心思,实例代码重点关注当前知识点涉及的内容,弱化边缘代码,并采用特殊的排版方式适时添加简明扼要的注释,方便程序代码的阅读和重点内容的把握。全书拥有大量精美的图表,这些图表很好地解构了上下文中一些难点的知识,大大提高了阅读性,降低了理解的难度。
注重趣味、轻松阅读:由于技术书籍的严谨性、知识性的特点,阅读技术书籍往往是枯燥乏味的,更遑论趣味性。笔者对此深有感触,为寻求一些突破,我们在全书大部分章节都精心设计一个“轻松一刻”,它们和上下文内容存在某种程度的关联性,但其本身是一段趣味性的短文,它们在增强全书趣味性的同时,还为读者提供另外一个思考问题的角度。
相关知识、一网打尽:Spring不但本身涉及众多Java技术,其集成的第三方技术本身也涵盖了丰富的知识。我们在介绍Spring相关技术时,都会简明扼要地讲解相关联的基础知识,这包括JDK 5.0的新知识和被集成技术的知识,准备好知识背景,而不是完全脱离背景知识的情况下孤立讲解Spring的知识。
历时一载、倾力打造:本书从筹划到全书成稿,历经近一年的时间,笔者为了能够全力投入本书的撰写工作中,辞掉了工作,闭门谢客,专职写作。
本书的结构
本书分为6大部分,其中第一部分为Spring概述性知识;第二部分讲解了Spring框架核心技术的内容;第三部分涵盖了在Spring中使用各种数据访问技术的内容;第四部分讲解业务层各种技术的知识;第五部分是展现层技术的知识;第六部分讲解了如何测试Spring应用和Spring各种工具类的知识。其中有些章节的相似内容已经在技术网站IT168技术频道发表,网友和读者给予了充分的评价。最终成书的内容,又在网友评论和反馈的基础上做了补充和修订。下面简要介绍一下每章的内容。
第1章:对Spring框架进行宏观性的概述,力图使读者建立起对Spring整体性的认识。
第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界。
第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念。同时,对Spring框架的三个最重要的框架级接口进行了剖析,并对Bean的生命周期进行讲解。
第4章:讲解了如何在Spring配置文件中使用Spring 2.0的Schema格式配置Bean的内容,并对各个配置项的意义进行了深入的讲解。
第5章:对Spring容器进行解构,从内部探究Spring容器的体系结构和运行流程。此外,我们还将对Spring容器一些高级主题进行深入的阐述。
第6章:我们从Spring AOP的底层实现技术入手,一步步深入到Spring AOP的内核中,分析它的底层结构和具体实现。
第7章:对如何使用Spring 2.0新增的基于AspectJ配置AOP的知识进行了深入的分析,这包括使用XML Schema配置文件、使用注解进行配置等内容。
第8章:介绍了Spring所提供的DAO封装层,这包括Spring DAO的异常体系、数据访问模板等内容。
第9章:介绍了Spring事务管理的工作机制,通过XML、注解等方式进行事务管理配置,同时还讲解了JTA事务配置知识。
第10章:讲解了如何使用Spring JDBC进行数据访问操作,我们还重点讲述了LOB字段处理、主键产生和获取等难点知识。
第11章:JPA规范是Java EE 5.0标准的数据访问技术,本章对如何在Spring中使用JPA进行了全面的讲解。
第12章:讲解了如何在Spring中集成Hibernate、iBatis等数据访问框架,同时,读者还将学习到ORM框架的混用和DAO层设计的知识。
第13章:本章重点对在Spring中如何使用Quartz进行任务调度进行了讲解,同时还涉及了使用JDK Timer和JDK 5.0执行器的知识。
第14章:本章讲解了如何在Spring中使用JavaMail发送电子邮件的内容,同时还对JavaMail的技术体系进行了介绍。
第15章:在Java EE应用中,JMS是经常使用的技术之一,本章讲解了如何在Spring中使用JMS的相关知识。
第16章:XFire迅速成为Web Service开发框架中的闪亮新星,相比于其他Web Service框架(如Axis、GLUE等),XFire拥有更多的优势。本章使用全新的视角讲述了在Spring中开发Web Service应用的各项知识。
第17章:Acegi提供了系统安全的整体解决方案。Acegi是基于Spring Web应用的安全框架,在Spring中实施Acegi简单易行。本章讲解了如何在Spring Web应用中实施Acegi的整体过程。
第18章:随着Ruby,特别是Ruby on Rail在应用领域所取得的成功,近两年来动态语言成为炙手可热的技术之一。本章讲解了在Spring中集成JRuby、Groovy和BeanShell动态语言的过程。
第19章:Spring为展现层提供了一个优秀的Spring MVC框架,本章涵盖Spring MVC体系框架、处理器映射、控制器、文件上传、本地化、主题、异常处理等知识。
第20章:Spring MVC的优秀之处在于它把视图层技术与MVC框架的其他部分分离开来,用户可以在控制层代码完全不变的情况下改变视图的类型。本章重点讲述了Spring MVC各种视图的使用过程。
第21章:虽然Spring MVC是一个优秀的MVC框架,但或许读者更喜欢使用其他诸如Struts、Tapestry、JSF等框架。在本章中,我们讲解了三个流行Web框架的最新版本如何集成到Spring中的具体步骤。
第22章:程序测试对保障应用程序正确性而言,其重要性怎样强调都不为过。本章虽然也涉及JUnit和EasyMock的知识,但我们重点讲述如何使用Spring测试帮助类对Spring应用进行测试等方面知识。
第23章:Spring不但提供了一个功能全面的应用开发框架,本身还拥有众多可以在程序编写时直接使用的工具类。在本章中,我们从众多的Spring工具类中遴选出最具适用性的部分介绍给大家。
如何使用本书
读者应该在机器上安装Eclipse 3.2,并下载Spring 2.1的最新发布包,在机器上重现书中实例的开发过程。毕竟程序开发是实践性极强的工作,只有亲身体验才能掌握其真谛。
配套光盘拥有本书所有实例的代码,读者也可以在此基础上重复本书的实例的开发过程,省去重新录入代码之苦。
本书的插文
本书会适时加入一些提示、实战经验和轻松一刻的小段插文,在不打断行文的同时提供一些有益的开发经验、使用技巧并增强阅读的趣味性。这些插文都带有一个小图标加以突显,说明如下:
|
|
提示:在上下文中可能存在一些读者容易忽视或容易犯错的地方,在提示信息中给予针对性的帮助信息 |
|
|
实战经验:笔者将多年的开发实战经验适时介绍给大家。这些知识往往是不能从一般的书籍或资料中获得的。本书会适时地在行文中将这些实战经验分享出来,相信可以使读者朋友少走一些弯路 |
|
|
轻松一刻:为了增强技术书籍阅读的趣味性,全书每章几乎都有一到两个轻松一刻的短文,它们和上下文内容都存在某种程度的关联性,不但为阅读带来了趣味性,还可以启发读者的思考 |
此外,由于Spring 2.x拥有多个版本,为了保持行文的简洁,除非特别指出,本书的Spring或Spring 2.0即代表当前最新的版本(Spring 2.1.x)。
如何与作者联系
由于Spring内容涵盖面宽广,涉及的内容非常多,同时由于作者水平有限,错误之处在所难免。我们不但欢迎读者朋友来信交流,更期待各界高手、专家就不足之处给予赐教和斧正。您可以通过quickSelect@yahoo.com.cn与笔者联系。
陈雄华 厦门
| 回书目 下一节 |