抢先一步
VMware 提供培训和认证,助您加速进步。
了解更多为了庆祝新的 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 用户会喜欢这本书。我会在未来几周向您汇报我们的进展。