前言
关于本书
Spring作为Java领域的第一开源项目,从其诞生到现在已有10个年头。10年的时间对于计算机业界来说是非常漫长的,在热闹的Java开源领域,无数个开源产品喧嚣登场,但又很快被人们淡忘。能够像Spring一样历经时间洗礼而历久弥香的开源框架真的是寥若星辰,Spring无疑是Java开源世界的一朵奇葩。
在Spring发展的10年中,不但Spring自身不断发展壮大,各种基于Spring的子项目也如雨后春笋一样成长起来,Spring的社区亦蓬勃发展。Rod就和他的骨干团队成立了SpringSource公司,以商业化的方式对开源的Spring进行运作。2009年,商业软件生产商VMWare宣布斥资4.2亿美元收购SpringSource公司:一个源于Spring开源框架的公司卖出了天价,这从商业价值上又一次证明了Spring强大的内在价值。
笔者在实际工作中使用Spring框架也有近10年的时间了,在2005年和2012年分别出版了《精通Spring 2.x─企业应用开发详解》和《Spring 3.x企业应用开发实战》两本书籍,承蒙读者的垂爱,都取得了不错的销售成绩,对于作者来说,没有什么比获得读者肯定更值得欣慰的了,这大大激发了我深耕Spring的热情。在实际工作和图书撰写过程中,我多次研究了Spring框架的源码,使用Spring越深,越能体会到Spring的精妙。2012年,因工作需要,我参照Spring MVC的实现思路开发了一个基于Spring的开放服务平台框架,即ROP(Rapid Open Platform),目前该项目已经在github中开源,也用在了我的实际工作中,并取得了很好的应用效果。
Spring就像一座巨大的宝藏,越挖掘就越有惊奇的发现。从起初满足于使用Spring提供的各项IoC、AOP等功能的喜悦,到后来沉醉在Spring源码审读的快乐里,再到现在汲取Spring思想精髓后,开发出自己的“很Spring”的开源产品。一步步走来,“春光无限”,受益良多,收获良多。从自己学习Spring的10年长征路来说,最大的一个体会就是:Spring不仅是工具,更是一部学习Java设计原理,活用Java技术的百科全书。所以,如果让我给有志于Java编程的开发者送一句寄语的话,我将把这句“用Spring吧,研究Spring吧”送给他们。用Spring可以让你找到一份不错的工作,研究Spring可以让你成为一名系统架构师!
《Spring 3.x企业应用开发实战》有近800页的篇幅,很多读者来信说,能否出一本内容精悍而不失深度的Spring书,只包含Spring最重要最核心的内容,使他们可以尽快上手,并沿着这个核心给出一些方向,让他们自行在工作和学习中不断拓展和深掘。
这样的建议无疑是非常有道理的,由于Spring内容的浩瀚性,任何一本有限篇幅的书都无法穷尽Spring的内涵。想学习好Spring并吸取Spring中饱含的设计原理、Java技艺、巧妙构思,并没有捷径,也许还得走我那条边学边用,边用边学的老路。所以,就有了本书,它只有11章,400页左右的篇幅。它不但涵盖了学习Spring所必须掌握的核心内容、使用Spring进行项目实战的内容,而且涵盖了如何活用Spring打造自主框架的内容。本书的主旨就是希望您尽快上手,掌握Spring核心内容,正确进行项目实战,汲取Spring的思想,并最终将这种思想活用到实际工作中。
本书面向的读者
首先,本书适合于所有的Java程序员,作为Java开源世界的第一框架,Java程序员没有理由不学习Spring。其次,本书适合于那些希望学习Spring编程的在校学生,由于学校的功课很多,而一本大部头的Spring书籍需要花费大量的时间研读,在学习效率上,本书可以快速带领你进入Spring的殿堂,同时又不会遗漏掉Spring核心的知识。
本书的结构
第1章通过一个简单的例子展现开发Spring的Web应用的整体过程,通过这个实例,读者可以快速进入Spring的Web应用开发的世界。
第2章讲解了Spring IoC的知识,对Spring框架的3个最重要的框架级接口进行了剖析,并对Bean的生命周期进行分析,讲解如何在Spring配置文件中使用Spring 3.0的Schema格式配置Bean的内容,并对各种配置项的意义进行了深入的说明。
第3章讲解了AOP的知识,对如何使用基于AspectJ配置AOP的知识进行了深入的分析,包括使用XML Schema和使用注解方式进行配置等内容。
第4章讲解了如何使用Spring JDBC进行数据访问操作的内容,还重点讲述了LOB字段处理、主键产生和获取等难点知识。
在第5章中,读者将学习如何在Spring中集成Hibernate,以及DAO层设计的各种思路。
事务管理是Spring提供的最好用的功能之一,在第6章中,读者将学习Spring事务管理的工作机制,并学会通过XML、注解等多种方式进行事务管理的配置。
第7章对Spring MVC框架进行详细介绍,对REST风格编程方式进行重点讲解,同时还介绍了Spring 3.0的校验和格式化框架如何与Spring MVC进行整合。
第8 章展现了特别精彩的单元测试内容,以当前最具实战的JUnit4+Unitils+Mockito组合测试框架来讲解单元测试,而不囿于Spring本身。
要学好Spring,不但要有较好的Java基础,还需要了解多项敏捷开发的技术,如Maven、SVN、持续集成等,因为Spring框架本身就是采用这些敏捷技术开发出来的。第9章将会详细讨论这些内容。
第10 章带领读者打造一个自主的服务开放平台框架,学习如何活用Spring,如何为我所用。同时,也可以使用该框架开发Web Service服务。
第11章以一个实际的项目为蓝本,带领读者经历需求分析、概要设计、代码开发、单元测试直到应用部署的整体项目开发过程。
如何使用本书
首先,应该在计算机中安装Maven,因为本书项目是以Maven组织的,可以从http://maven.apache.org/download.html下载Maven。此外,建议读者安装社区版的IntelliJ IDEA,IDEA不仅是对Maven支持最好的IDE,我们甚至认为它是当前最出色的Java IDE,可以从http://www.jetbrains.com/idea/download下载。
尽量在自己的计算机中动手执行本书的所有代码,仅仅看书和自己动手存在天壤之别,动手运行代码和看书结合起来才能更深地理解Spring的各项功能。
如何下载代码
为了环保,本书不提供光盘,读者可以使用以下网址中的任意一个来下载本书的代码:
● Github,https://github.com/downloads/itstamen/rop/sprProjects.zip;
● 360云盘,http://l7.yunpan.cn/lk/QMwksThxzXYUD;
● 百度网盘,http://pan.baidu.com/share/link?shareid=123943&uk=1543829856。
如何与作者联系
由于Spring内容涵盖面较广,涉及的知识点非常多,且作者水平有限,本书不足之处在所难免。我们不但欢迎读者朋友来信交流,更期待各界高手、专家就不足之处给予赐教和斧正。您可以通过quickselect@yahoo.com.cn与笔者联系。
陈雄华 于厦门