完成《Spring 入门指南 2:从新手到专业人士》

工程 | admin | 2006 年 8 月 3 日 | ...

为了庆祝新的 i21 团队博客上线,我借此机会介绍一本即将出版的 Spring 新书。它的标题是“Beginning Spring 2: from Novice to Professional”,由 Apress 出版。我与 Mark Fisher (i21)、Bram Smeets(因 DWR 而闻名)和 Seth Ladd(因《Expert Spring MVC and Web Flow》而闻名)共同撰写了本书。Rob Harrop 担任技术审稿人。

正如你可能猜到的那样,本书面向 Spring Framework 的初学者。Spring 有趣之处在于,你总会在某些领域是个新手。这个框架提供了太多的特性和集成,你不可能全部了解(Juergen 除外)。

这就是我们对“初学者”一词没有过于严格要求的原因。当然,这本书确实向那些在书店拿起这本书,之前完全没听说过 Spring 的人介绍了 Spring Framework。而且,Spring 的初学者通常不是 Java 的初学者。由于书中也涵盖了许多新的 Spring 2.0 特性,几乎所有 Spring 用户——当然还有 Ben Hale——都会觉得至少有一些章节很有趣。

我们采取了解决问题和提供实用建议的方法。在每一章中,我们都会阐述开发人员在相关领域通常面临的挑战,并结合示例讨论一些常见的陷阱。接下来,我们将介绍 Spring 提供的解决方案,以及读者如何通过在应用程序中使用这些方案而受益。我们发现,先阐述问题,再讨论 Spring 解决方案,可以更容易地掌握 Spring 中的思想并理解其解决方案的价值。

因此,我相信对于那些已经在项目中使用 Spring 一段时间,但从未真正有机会退后一步思考解决方案背后问题的人来说,这本书会很有价值。

以下是章节大纲

第 1 章是现代应用程序开发的介绍。它概述了配置的挑战以及将架构限制在狭隘编程模型的危险。它介绍了依赖查找和依赖注入等概念,并将 Spring 置于 JEE 技术的背景下进行阐述。它介绍了框架的核心价值:集成、改进、增加一致性、使其更易于使用、提供文档并提高标准。

第 2 章介绍了 Spring 容器及其 XML 配置文件。本章内容相当广泛,介绍了 Spring 用户可用的灵活性。例如,相当详细地介绍了 FactoryBean 和工厂方法的使用,因为它们可以为应用程序增加很多灵活性。书中还介绍了 bean 的生命周期,因为在 Spring 2.0 发布后,理解这一可扩展点对于 Spring 用户来说变得更加重要。

第 3 章涵盖了经典的 Spring AOP 框架。我们发现,如果不先温和地向读者介绍 AOP 的核心概念,就无法涵盖新的 Spring 2.0 特性:什么是问题,什么是 AOP,它是如何解决问题的?什么是通知(Advice),有哪些不同类型?什么是代理对象(Proxy object),如何配置它们的创建?什么是连接点(Join Point)和切入点(Pointcut)?最后,本章展示了 Spring 如何在内部使用 AOP 的一些示例。本章基于 Spring 1.2,并作为下一章的起点。

第 4 章可能是我——我相信也是 Ben——最喜欢的一章,因为它涵盖了 Spring AOP 2.0。Adrian 在 Spring 2.0 参考手册中就新的 AOP 特性写了一篇出色的章节。本章进展较慢。它基于第 3 章的 AOP 概念,并介绍了切面(Aspects)和 AspectJ 切入点语言(Pointcut language)。它基于 @AspectJ 风格,但也涵盖了在 XML 中声明切面和通知器(Advisors)。它还介绍了自动代理创建(Auto Proxy Creation),这是 Spring 2.0 的一个关键特性,尽管在 Spring 1.x 中就已经存在。本章是所有 Spring 用户必读的一章。

书的附录提供了第 2、3、4 章的练习,这些练习提供了额外的背景信息,并帮助读者获得 Spring 的实践经验。

第 5 章是关于数据访问的介绍。当我第一次写这一章时,它相当简短,介绍了 Spring 的数据访问框架。后来我意识到,让用户更好地理解数据访问面临的挑战会很有趣。所以我重写了这一章,现在它的一半内容涵盖了典型的数据访问问题:管理数据库资源、数据访问异常问题、事务管理问题以及数据访问对应用程序的整体影响。接下来,它涵盖了 Spring 如何解决这些各种问题,以及如何在应用程序中找到合适的数据访问位置。

第 6 章介绍了如何在应用程序中使用 JdbcTemplate 通过 SQL 在数据库中插入、更新、查询和删除数据。

第 7 章是 Spring 事务管理在应用程序中的实践入门。它还涵盖了 Spring 2.0 中简便的事务管理配置。你知道 Spring 2.0 提供了 6 (!) 种配置事务管理的方式吗?这就是灵活性!

第 8 章实践性地介绍了 Spring MVC。它概述了典型的 Web 层,然后介绍了 Spring MVC 的组件。本章包含三个示例,从分页只读列表到复杂的表单处理。对于希望深入了解 Spring MVC 的现有 Spring 用户来说,这是一个很棒的章节。它还涵盖了 Spring 2.0 的 JSP 表单标签。

第 9 章是实践章节,涵盖了 Spring MVC 支持的一些视图技术,如 JSTL、Velocity、Freemarker、XSLT、PDF、Excel 和 JasperReports。

最后,第 10 章涵盖了测试。它强调了测试的重要性,以及用于编写集成测试(有些人称之为功能测试)的 JUnit、EasyMock 和 Spring 类。

在本书中,我们使用了一个示例应用程序,用于管理网球俱乐部和网球锦标赛的许多方面。我们认为,如果读者和 Spring 社区能够接触到一个合理复杂的示例应用程序,那会很好。这为我们提供了一个很好的方式来分享我们关于 Spring 如何融入实际应用程序的想法。我们仍在努力完成这个示例应用程序,但我现在就可以告诉你,它将包含大量关于我们选择使用的设计和配置的额外阅读材料。

正如你可能注意到的,本书没有涵盖 Hibernate。我们觉得从头开始恰当地解释 Hibernate 并且解释如何将其与 Spring 一起使用会太困难。最后,我们稍微改变了主意,认为如果能为读者提供一些 Hibernate 材料会很好。因此,将有一个在线可用的额外附录,介绍 Hibernate 的基本思想以及 Spring 如何促进其使用。对于那些在对象关系映射工具方面尚未入门的人来说,这是一个起点。

那么这本书什么时候出版呢?根据目前的安排,这本书将在 10 月底上市。您现在就可以预订。我们希望 Spring 用户会喜欢这本书。我会在未来几周向您汇报我们的进展。

获取 Spring 新闻通讯

订阅 Spring 新闻通讯以保持联系

订阅

抢先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举办的活动

查看 Spring 社区所有即将举办的活动。

查看全部