- 定价:¥39.00
- 评分:
(已有117条评价)
基本信息
- 原书名:Spring in Action
- 原出版社: Manning Publications
编辑推荐
Spring是掠过Java大地的一阵清风。Spring是以反向控制设计原理为基础,无需EJB而功能依然强大的轻量级J2EE开发框架。Spring大大简化了使用接口开发的复杂性,并且加快和简化了应用系统的开发。使用简单JavaBean就可以得到EJB的强大功能。
本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将你的应用系统与其他流行Web框架集成。你将学习如何使用Spring管理大量的基础设施代码,这样你就可以将注意力集中在真正的问题上——重要的业务需要。
本书内容:
·使用Hibernate、JDO、iBatis、OJB以及JDBC开发持久层;
·声明式事务与事务管理;
·与其他Web框架集成:Struts、WebWork、Tapestry、Velocity;
·访问J2EE服务,如JMS和EJB;
·使用AOP解决交叉问题;
·企业组应用系统最佳实践。
“……一种解释Spring中各个主题的很好途径……我喜欢这本书”
——Christian Parker,Adigio公司总裁
“……没有其他书籍可以与这本书的实用性相提并论。”
——Olivier Jolly,J2EE构架师,Interface SI
“我很喜欢这种展示Spring的方式。”
——Norman Richards,XDoclet in Action的作者之一
“我极力推荐这本书。”
——Jack Herrington,Code Generation in Action的作者
内容简介
计算机书籍
本书分为三大部分和两个附录,每一部分专注于Spring框架的一个领域:核心层、中间层和Web层。第一部分展示了Spring框架的两个核心概念:反向控制(Inversion of Control,IoC)和面向切面编程(Aspect-Oriented Programming,AOP),以便理解Spring的基础原理,这些基础原理在本书各个章节都会用到。第二部分在第1章介绍的IoC和AOP基础之上,展示了如何将这两个概念应用到应用系统的中间层。第三部分走出中间层迈向显示层,在很多J2EE系统中显示层被称为Web层。附录A介绍如何开始自己的Spring应用系统,如何下载Spring以及如何编写Ant配置文件。附录B介绍一些与Spring有关的其他开源框架。本书的每一部分既是建立在前一部分的基础上,同时也都是独立存在的,所以,读者不必从头开始就可以深入到各个主题。
本书适合所有Java开发人员,特别是对企业级Java开发人员更有帮助。本书将循序渐进地指导读者浏览贯穿本书的复杂示例。Spring的真正伟大之处在于它使企业级系统开发变得简单,所以,企业级系统开发人员会更加欣赏本书中的示例代码。本书最后四章描述了Spring是如何为Web层开发提供支持的,如果你是一位Web开发人员,你会发现本书的最后一部分特别有用。
Spring是一阵掠过Java大地的清风。以反向控制设计原理为基础,Spring是一个无须EJB,但功能依然强大的轻量级J2EE开发框架。Spring大大简化了使用接口开发的复杂性,并且加快和简化了应用系统的开发。使用简单JavaBean就可以得到EJB的强大功能。
本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将你的应用系统与其他流行Web框架集成。你将学习如何使用Spring管理大量的基础设施代码,这样你就可以将注意力集中在真正的问题上——重要的业务需求。
本书内容:
· 使用Hibernate、JDO、iBatis、OJB以及JDBC开发持久层;
· 声明式事务与事务管理;
· 与其他Web框架集成:Struts、WebWork、Tapestry、Velocity;
· 访问J2EE服务,如JMS和EJB;
· 使用AOP解决交叉问题;
· 企业级应用系统最佳实践。
作译者
Ryan Breidenbach是一个狂热的开源Java支持者,他有五年的Java Web系统开发经验,他目前住在德克萨斯州的Coppell。
李磊。曾就职于VIA。目前在阿里巴巴从事支付宝开发工作,资深开发工程师。有5年J2SE及J2EE开发经验,熟悉大量Java开源项目。目前住在美丽的西子湖畔——杭州。
程立。于2005年初加入阿里巴巴旗下的支付宝公司,作为支付宝系统的架构师,负责架构及核心系统的设计和开发。在此之前,有3年左右的Java的开发与咨询经验。
周悦虹。于1998年加入阿里巴巴公司,目前是阿里巴巴构架专家,阿里巴巴、淘宝、支付宝等知名网站的技术奠基人之一。有超过6年的开发经验,在Java及J2EE方面有丰富的经验,对于开放源码项目也有深刻的理解。
目录
第1章 开始Spring之旅
1.1 为什么使用Spring
1.1.1 J2EE开发者的一天
1.1.2 Spring的承诺
1.2 Spring是什么
1.3 开始Spring之旅
1.4 理解反向控制
1.4.1依赖注入
1.4.2 IoC 应用
1.4.3 企业级应用中的IoC
1.5 应用AOP
1.5.1 AOP介绍
1.5.2 AOP使用
1.5.3 企业级应用中的AOP
1.6 Spring 比较
1.6.1 比较Spring和EJB
1.6.2 关于其他轻量级容器
1.6.3 Web 框架
1.6.4 持久层框架
译者序
Spring以反向控制和AOP这两种先进的设计理念为基础。统一了应用对象的查找、配置和生命周期管理,分离了业务与基础服务中的不同关注点。开发人员可以基于简单Java对象轻松实现与EJB同样强大的功能。
在业务层,Spring为企业级应用提供了一个相当全面的解决方案。这个方案包括数据库持久化支持,声明式事务管理,远程服务访问以及JMS、Mail、定时等多种企业服务。
在Web层,Spring为企业级应用提供了一个MVC框架,该框架相比其它流行的Web框架毫不逊色;而且Spring可以集成各种Web框架(Struts、WebWork等)和视图技术(JSP、Velocity等)。
随着Spring的日益流行,市场上有越来越多介绍Spring的图书上市。“确实是一本好书,是一本非常值得推荐的图书”这是Javalobby.org对Spring in Action的评价。目前在Amazon上Spring in Action的评价星级是4星半,受到很多读者的好评。
Spring in Action从Spring框架的核心概念——IOC和AOP讲起,到在应用系统各个层次中的应用。从概念到应用,从简单到复杂,概念清晰,循序渐进。如果读者是刚接触Spring的新手,译者建议你从头开始,一步步了解Spring其中的奥妙。对于已经有些Spring使用经验的读者来说,本书也具有很好的参考价值。本书译者也是在工作中经常从本书中获得一些灵感。
本书作者之一Craig Walls也是XDoclet in Action一书的作者之一。这也是Manning出版社的一本畅销图书,可见本书作者的写作功底。相信大家对Manning出版社的Java图书也都有所了解,这两年,Manning出版社确实出版很多非常实用的Java开发图书(当然包括本书)。
译者虽然在Java开发方面有些经验,但对于翻译图书还是第一次。所以,在翻译用词上可能还有欠缺的地方,大家如果对翻译内容有任何意见和建议请提交到本书中文版的Blog(http://springinaction.blogdriver.com/)中。如有关于Spring技术方面的问题也欢迎大家在Blog中一起讨论。
译者
前言
Spring框架是以简化J2EE系统开发为目标而创建的。同样,《Spring in Action中文版》是以学习如何容易地使用Spring而写的。我们的目标不是详细地列出Spring的API,我们想通过来自现实生活的实际示例代码为J2EE开发人员展示Spring框架。
因为Spring是模块化的框架,所以本书也是按这种方式来写的。我们知道不是所有的开发人员都需要这样,有些人想从头学习Spring,有的可能只是挑几个不同的话题,按照自己的需要来看。所以,本书既可以被刚开始学习Spring的读者当作学习工具,也可以被那些想深入了解某方面知识的读者用作参考指南。
章节组织
《Spring in Action中文版》分成三大部分和两个附录,每一部分专注于Spring框架的一个领域:核心层、中间层和Web层。每一部分既是建立在前一部分的基础上,同时也都是独立存在的,所以,读者不必从头开始就可以深入到各个话题。
第一部分向你展示了Spring框架的两个核心概念:反向控制(Inversion of Control,IoC)和面向切面编程[1](Aspect-Oriented Programming,AOP)。这使读者可以更好地理解Spring的基础原理,这些基础原理在本书各个章节都会用到。
第1章向读者展示了IoC和AOP两个技术概念,以及Spring如何利用这两种技术使Java开发变得容易的,同时读者将了解到Spring和其他框架(如EJB、Struts和PicoContainer)的区别。
第2章详细地介绍了如何利用IoC配置你的应用系统,读者将学到如何编写松耦合的组件,如何在Spring容器中利用XML来描述各个组件的属性,装配其依赖类。
第3章向读者介绍了如何使用Spring的AOP来解耦交叉问题,如将安全模块从使用它的模块中独立出来。本章也为第5章做了铺垫。在第5章中,读者将学习如何利用AOP来实现声明式事务管理。
第二部分在第1章介绍的IoC和AOP基础之上,向读者展示了如何将这两个概念应用到应用系统的中间层。
第4章覆盖了整个Spring的数据持久层,向读者介绍了Spring对JDBC的支持,这简化了和JDBC相关的开发,读者也会了解到Spring是如何与当前一些流行的ORM框架(如Hibernate、JDO、OJB和iBATIS等)集成的。
第5章是第4章的延续,向读者展示了如何使用Spring事务管理来保证数据一致性。读者将看到Spring是如何在不使用EJB的情况下,利用AOP提供强大的声明式事务的。
第6章展示了如何将你的系统中的对象发布成远程服务,以及如何透明地使用远程服务。介绍的远程技术包括RMI、Hessian/Burlap、EJB、Web Services以及Spring自己的HttpInvoker。
第7章向读者展示了在Spring 中如何集成其他企业服务,读者将了解到使用Spring集成邮件服务, JMS甚至EJB都是那么的容易。
第三部分走出中间层迈向显示层,在很多J2EE系统中叫做Web层。
第8章介绍了Spring自己的MVC框架。读者将了解Spring如何透明的将Web参数绑定到业务对象中,同时又提供了数据验证和错误处理功能。你也将看到利用Spring的拦截器来添加新功能是多么的容易。
第9章在Spring MVC的基础上,向读者展示了除了使用JSP外,如何使用其他模板技术(如Velocity和FreeMarker)实现显示层,同时你将看到如何利用Spring MVC动态产生二进制文件(如PDF和Excel文档)。
第10章 向读者介绍了如何把Spring与其他Web框架集成在一起。对于那些已经在其他框架投入了很大精力的用户来说,Spring提供了与其他Web框架(如Struts、Tapestry、JavaServer Faces和WebWork)集成的支持。
最后,在第11章中,读者将了解到如何利用Acegi安全系统为你的Web系统提供认证服务,你将了解到如何将Acegi和你的业务对象集成,以提供方法级别上的安全控制。
附录A向读者介绍如何开始自己的Spring应用系统,如何下载Spring以及如何编写Ant配置文件。
序言
同时,他们要有很强的求知欲。软件行业的发展日新月异,新框架、新技术、新语言、以及新方法都不断更新变化。每一样都是一种新的工具,需要开发者去掌握并加入他的工具箱,以便他或她的工作能做得更好更快。
还有一个最宝贵的品格,那就是“懒惰”。这种懒惰激励开发者努力用最小的开销找到最佳的解决方案。我们中间的两个人,就是凭着这样的求知欲、一剂“懒惰”的良方,以及所有能汇集到的分析能力,花了4年的时间探索,终于找到了一条软件开发的新路子。
在Java社区里,现在几乎是一个开放源码泛滥的时代,成千上万个开放源码框架繁荣在Java大地上。要采用其中某一个的话,它必须要在最佳位置命中我们的需求——我们需要的80%的功能必须是即插即用的。框架也必须是易于扩展的,对于那些框架中不能直接使用的功能,也要能很方便地添加进去。扩展并不是非正常的丑陋的拼装,会让你在完成后感到杂乱不堪——它乃是指框架以一种优美的方式来延伸。对于这一点不会有什么疑问了吧?
在诸多框架中,最早被我们小组迅速采纳的是Ant。从我们的切身体会,可以说Ant是由另一个知道我们编译Java应用的痛苦的开发者创造的。有了Ant之后,不再需要javac,也不再需要CLASSPATH。所有这些都由一个简单明了(尽管有时候会很长)的XML配置文件代替。太棒了!工作(和编译)变得更加容易了。
随着时间的推移,我们开始采用越来越多的工具。Eclipse成为我们的IDE选择;Log4J是我们(也是其他任何人的)默认的日志工具;还有Lucene取代了商业的搜索解决方案。这些工具越来越容易使用、理解和扩展,能满足我们普遍的需求。
但也有些欠缺的地方。这些优秀的工具或者被设计为有助于软件开发,像Ant和Eclipse;或者是服务于一个非常特定的应用需求,像搜索方面的Lucene和日志方面的Log4J。却没有一个专注于企业应用的核心需求:如持久化、事务处理以及和其他企业资源的整合问题。
大约在去年的时候,当我们发现这个Spring和Hibernate强强联手的伟大的框架时,这一切都改变了。有了这两个框架,几乎所有的中间层和数据层的需求都能被满足。
首先,我们采用了Hibernate。在那些对象/关系映射工具中,Hibernate是非常直观的,并具有丰富的功能。不过只有把它和Spring结合之后,才能真正使我们的代码非常漂亮。因为有了Spring的反向控制,我们就能去掉所有定制工厂和配置器。事实上,这就是最先我们把Spring整合到我们的应用中的原因。它的架构能简化我们的应用配置,并从原来的解决方案中分离出来。(嗨,每个开发者都喜欢写他自己的框架,但有时你也得放开一下。)
我们很快就发现了一个好处:Spring同时提供了非常简单的Hibernate整合的方法。这让我们能抛开自己定制的Hibernate整合类,用Spring提供的方法来代替。反过来,这也直接把我们带到Spring对透明持久化的支持。
仔细观察一下的话,你会发现这里有个模式。我们更多地使用Spring,就会发现更多的新功能。并且对于发现的每一个功能,我们都能合作愉快。它的Web MVC框架在一些应用中工作得相当好;它的AOP支持在某些地方非常有帮助,特别是在安全上;它的JDBC支持在一些小的程序上相当出色。喔,我们还把它用在调度、JNDI访问、Email整合上。Spring可以说是出类拔萃的,因为它找准了最佳的发展点。
我们是如此喜欢Spring,以至于决定有人该写一本关于Spring的书。幸运的是,我们中有人已经写了一本关于配置的书,并清楚如何开展这类事情。不久我们就成了“该写一本书的人”。承担这个项目,我们试图传播Spring的福音。和Spring框架一起工作对我们来说就是一件充满乐趣的事情——相信对你而言也会如此。并且,我们希望这本书是一个令人满意的媒介,能帮助你实现这一点。
致谢
这本书的创作不仅仅是两个人的事情。除了两位作者之外,在各个方面很多人的参与之下才使这本书的诞生成为可能。
首先,我们要感谢Manning出版社的幕后工作人员:发行人Marjan Bace、他的助手Susan Capparelle、我们的编辑Jackie Carter,还有Denis Dalinnik、Leslie Haimes、Mary Piergies、Liz Welch、Susan Forsyth 和 Helen Trimes。我们无法想象还能找到更好更专业的队伍合作。你们在自己的岗位上都做得非常好,并且应该为制作出世界上最好的技术书而得到称赞。.
我们还要感谢本书的审阅者:Doug Warren、Muhammad Ashikuzzaman、Ryan Cox、Mojahedul、Hasanat、Jack Herrington、 Olivier Jolly、William Lopez、Lester Martin、Dmitri Maximovich、Daniel Miller、Christian Parker、 Matthew Payne和Norman Richards,谢谢你们贡献了大量时间,提供给我们许多的反馈、批评和灵感,使本书更为完善。特别要感谢Doug Warren,在本书印刷之前,对原稿进行技术校正。
最后,还要感谢Rod Johnson和Spring小组的其他人,感谢他们在第一线创造了Spring。我们可以很诚实地说,使用Spring真是一件令人愉快的事。你们真是太棒了!
CRAIG WALLS
我想感谢我亲爱的美丽的妻子:Raymie。你是我一生的最爱和最好的朋友,也是我最甜蜜的梦。谢谢你对我的支持和耐心,对于还在进行中的另一个图书项目——我保证马上就会结束了。
我的合著者,Ryan,是他让我开始了解Spring并帮助我整理这本书,把Spring告诉其他所有的人。
书摘
致谢
这本书的创作不仅仅是两个人的事情。除了两位作者之外,在各个方面很多人的参与之下才使这本书的诞生成为可能。
首先,我们要感谢Manning出版社的幕后工作人员:发行人Marjan Bace、他的助手Susan
Capparelle、我们的编辑Jackie Carter,还有Denis Dalinnik、Leslie Haimes、Mary
Piergies、Liz Welch、Susan Forsyth 和 Helen
Trimes。我们无法想象还能找到更好更专业的队伍合作。你们在自己的岗位上都做得非常好,并且应该为制作出世界上最好的技术书而得到称赞。
我们还要感谢本书的审阅者:Doug Warren、Muhammad Ashikuzzaman、Ryan
Cox、Mojahedul、Hasanat、Jack Herrington、 Olivier Jolly、William Lopez、Lester
Martin、Dmitri Maximovich、Daniel Miller、Christian Parker、 Matthew
Payne和Norman Richards,谢谢你们贡献了大量时间,提供给我们许多的反馈、批评和灵感,使本书更为完善。特别要感谢Doug
Warren,在本书印刷之前,对原稿进行技术校正。
最后,还要感谢Rod
Johnson和Spring小组的其他人,感谢他们在第一线创造了Spring。我们可以很诚实地说,使用Spring真是一件令人愉快的事。你们真是太棒了!
CRAIG WALLS
我想感谢我亲爱的美丽的妻子:Raymie。你是我一生的最爱和最好的朋友,也是我最甜蜜的梦。谢谢你对我的支持和耐心,对于还在进行中的另一个图书项目——我保证马上就会结束了。
我的合著者,Ryan,是他让我开始了解Spring并帮助我整理这本书,把Spring告诉其他所有的人。
对于我在Michaels的小组成员——Ryan、Marianna、Van、Tonji、Jeff、Jim、Don、Carol
和Leida,感谢你们每一天都展现了一个世界级软件开发小组的水平和能力。现在这本书终于完成了,或许我将不用再谢绝这么多午餐邀请了!
感谢我在今年的全国巡回软件研讨会No-Fluff/Just-Stuff上遇到和交谈的朋友和同事:Glenn Vanderburg、Ted