Spring in Action(第二版)中文版
基本信息
- 原书名: Spring in Action
- 原出版社: Manning Publications
- 作者: (美)Craig Walls Ryan Breidenbach
- 译者: 毕庆红 王军
- 出版社:人民邮电出版社
- ISBN:9787115185273
- 上架时间:2008-9-4
- 出版日期:2008 年10月
- 开本:16开
- 页码:483
- 版次:2-1
- 所属分类:
计算机 > 软件与程序设计 > JAVA(J#) > Spring
编辑推荐
“……这本书的确是一本易读、易懂又实在有用的Spring向导书。如果你认为自己在Spring方面还有全方位学习的需要,那么它应该有足够的理由在你的书架上占据一席之地。”
——熊节,ThoughtWorks咨询师
内容简介回到顶部↑
本书分成三大部分并附有两个附录,每一部分分别对应spring框架的一个领域:核心框架、业务和数据层、表示层。每一部分既是建立在前一部分的基础上,同时也可以独立存在。因此,读者不必从头开始,完全可以直接深入到某个主题。书中第一部分展示了spring框架的两个核心特性:依赖注入和面向切面编程。第二部分以第一部分介绍的di和aop特性为基础,叙述了如何将这两个概念应用到应用程序的数据和业务层中。第三部分介绍了spring构建web应用程序的各种方式。
本书适合所有java开发人员阅读,特别是对企业级java开发人员更有帮助。本书循序渐进地指导读者浏览贯穿本书的复杂示例。spring最突出之处在于它使企业级系统开发变得简单,所以,企业级系统开发人员会更加欣赏本书中的示例代码。本书最后4章描述了spring是如何为web层开发提供支持的,如果你是一位web开发人员,你会发现本书的最后一部分特别有用。
本书适合所有java开发人员阅读,特别是对企业级java开发人员更有帮助。本书循序渐进地指导读者浏览贯穿本书的复杂示例。spring最突出之处在于它使企业级系统开发变得简单,所以,企业级系统开发人员会更加欣赏本书中的示例代码。本书最后4章描述了spring是如何为web层开发提供支持的,如果你是一位web开发人员,你会发现本书的最后一部分特别有用。
目录回到顶部↑
第一部分 spring的核心
第1章 开始spring之旅
1.1 spring是什么
1.2 开始spring之旅
1.3 理解依赖注入
1.3.1 依赖注入
1.3.2 di应用
1.3.3 企业级应用中的依赖注入
1.4 应用aop
1.4.1 aop介绍
1.4.2 aop使用
1.5 小结
第2章 基本bean装配
2.1 容纳你的bean
2.1.1 beanfactory介绍
2.1.2 使用应用上下文
2.1.3 bean的生命
2.2 创建bean
2.2.1 声明一个简单的bean
2.2.2 通过构造函数注入
第1章 开始spring之旅
1.1 spring是什么
1.2 开始spring之旅
1.3 理解依赖注入
1.3.1 依赖注入
1.3.2 di应用
1.3.3 企业级应用中的依赖注入
1.4 应用aop
1.4.1 aop介绍
1.4.2 aop使用
1.5 小结
第2章 基本bean装配
2.1 容纳你的bean
2.1.1 beanfactory介绍
2.1.2 使用应用上下文
2.1.3 bean的生命
2.2 创建bean
2.2.1 声明一个简单的bean
2.2.2 通过构造函数注入
前言回到顶部↑
Spring框架是以简化JEE应用程序开发为特定目标而创建的。同样,《SpringinAction中文版》是为帮助读者更轻松地学会如何使用Spring而编写的。我的目标不是详细地列出Spring的API。相反,我希望通过提供来自现实生活的实际示例代码,为JEE开发人员展示Spring框架。.
由于Spring是一种模块化的框架,因此本书也按照那种方式来编写。就我所知,并不是所有开发人员的需求都是相同的。有些人可能希望从头开始学习Spring框架,而有些人则可能希望挑选几个不同的主题,按照自己的需要来研读。那样编写之后,本书就既可以被刚开始学习Spring的读者当做学习工具,也可以被那些想深入了解某方面知识的读者用做参考指南。
章节组织
本书分成三大部分并附有两个附录,每一部分分别对应Spring框架的一个领域:核心框架、业务和数据层、表示层。每一部分既是建立在前一部分的基础上,同时也都可以独立存在。因此,有些读者不必从头开始,完全可以直接深入到某个主题。
第一部分向读者展示了Spring框架的两个核心特性:依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)。这使得读者可以更好地理解Spring的基础原理,这些基础原理在本书各个章节都会用到。
第1章介绍DI和AOP,以及Spring是如何利用这两种技术来开发松散耦合的Java应用程序的。
第2章较为详细地介绍了如何利用依赖注入来配置和关联应用程序对象。读者将学习到如何编写松散耦合的组件,以及如何在Spring容器中利用XML宋装配它们的依赖性和属性。
在读者掌握Bean装配的基础知识之后,就可以到第3章中看看Spring容器的一些更加高级的特性了。其中,读者将学习到如何在自己的应用程序组件的生命周期内装配,如何在Bean配置之间创建父/子关系,以及如何装配进在Ruby和Groovy中编写的脚本化组件。
第4章研究如何利用Spring的AOP为对象去耦服务它们的横切关系。这一章还为后面的章节提供了基础,在那里,读者将利用SpringAOP来提供声明式服务——比如说,事务管理、安全和高速缓存。
第二部分以第一部分介绍的DI和AOP特性为基础,向读者展示如何将这两个概念应用到应用程序的数据和业务层中。
第5章涵盖Spring对数据持久层的支持。它向读者介绍Spring对JDBC的支持,这将简化与JDBC相关的开发。读者还会看到Spring是如何与当前流行的几个持久层框架相集成的,比如,Hibernate、iBATIS和Java Persistence API(JPA)。
第6章对第5章进行补充,向读者演示如何利用Spring的事务管理支持来确保数据库中的完整性。读者将看到Spring是如何利用AOP把声明式事务管理功能提供给简单的应用程序对象的。
在第7章中,读者将学习到如何利用SpringSecurity为自己的应用程序应用安全措施,将看到SpringSecurity是如何利用Servlet过滤器在Web请求层面和利用SpringAOP在方法层面保护应用程序的o。
第8章研究如何使你的应用程序对象成为远程服务。读者还将学习到如何无缝访问远程服务,就好像它们是你的应用程序中的其他对象似的。这一章研究的远程技术将包括RMI、Hessian/Burlap、基于SOAP的Web服务以及Spring自己的Httplnvokero
虽然第8章涉及Spring中的Web服务,但是第9章通过研究Spring-WS工程,从另一个角度来看Web服务。在这一章中,读者将学习到如何使用Spring-WS来构建契约优先(contract-first)的Web服务,在这些服务中,服务的契约被从它的实现中去耦。
第10章着眼于利用Spring与JMS一同发送和接收异步消息。除了与Spring相关的基本的JMS操作之外,读者还将学习到如何利用开放源码的Lingo工程在JMS上提供和使用异步远程服务。
尽管Spring大大削减了对EJB的需求,但是读者仍然可能会需要同时使用Spring和EJB。因此,第11章研究如何把Spring和EJB集成在一起。读者将学习到如何编写启用Spring的EJB,如何把EJB引用装配进Spring应用程序上下文中,以及如何利用EJB类注释来配置SpringBean。
作为第二部分最后一章,第12章将向读者演示如何利用Spring来制定工作计划、发送电子邮件、访问JNDI配置的资源以及和JMX一起管理应用程序对象。
第三部分把对于Spring的讨论向最终用户更移近了一小步,考虑利用Spring构建Web应用程序的各种方式。
第13章介绍了Spring自己的MVCWeb框架。读者将会学到Spring是如何透明地把Web参数绑定到业务对象,同时又提供数据验证和错误处理功能的。你还将看到利用大量精选的Spring拦截器来向Web应用程序添加功能是多么的容易。
由于Spring是一种模块化的框架,因此本书也按照那种方式来编写。就我所知,并不是所有开发人员的需求都是相同的。有些人可能希望从头开始学习Spring框架,而有些人则可能希望挑选几个不同的主题,按照自己的需要来研读。那样编写之后,本书就既可以被刚开始学习Spring的读者当做学习工具,也可以被那些想深入了解某方面知识的读者用做参考指南。
章节组织
本书分成三大部分并附有两个附录,每一部分分别对应Spring框架的一个领域:核心框架、业务和数据层、表示层。每一部分既是建立在前一部分的基础上,同时也都可以独立存在。因此,有些读者不必从头开始,完全可以直接深入到某个主题。
第一部分向读者展示了Spring框架的两个核心特性:依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)。这使得读者可以更好地理解Spring的基础原理,这些基础原理在本书各个章节都会用到。
第1章介绍DI和AOP,以及Spring是如何利用这两种技术来开发松散耦合的Java应用程序的。
第2章较为详细地介绍了如何利用依赖注入来配置和关联应用程序对象。读者将学习到如何编写松散耦合的组件,以及如何在Spring容器中利用XML宋装配它们的依赖性和属性。
在读者掌握Bean装配的基础知识之后,就可以到第3章中看看Spring容器的一些更加高级的特性了。其中,读者将学习到如何在自己的应用程序组件的生命周期内装配,如何在Bean配置之间创建父/子关系,以及如何装配进在Ruby和Groovy中编写的脚本化组件。
第4章研究如何利用Spring的AOP为对象去耦服务它们的横切关系。这一章还为后面的章节提供了基础,在那里,读者将利用SpringAOP来提供声明式服务——比如说,事务管理、安全和高速缓存。
第二部分以第一部分介绍的DI和AOP特性为基础,向读者展示如何将这两个概念应用到应用程序的数据和业务层中。
第5章涵盖Spring对数据持久层的支持。它向读者介绍Spring对JDBC的支持,这将简化与JDBC相关的开发。读者还会看到Spring是如何与当前流行的几个持久层框架相集成的,比如,Hibernate、iBATIS和Java Persistence API(JPA)。
第6章对第5章进行补充,向读者演示如何利用Spring的事务管理支持来确保数据库中的完整性。读者将看到Spring是如何利用AOP把声明式事务管理功能提供给简单的应用程序对象的。
在第7章中,读者将学习到如何利用SpringSecurity为自己的应用程序应用安全措施,将看到SpringSecurity是如何利用Servlet过滤器在Web请求层面和利用SpringAOP在方法层面保护应用程序的o。
第8章研究如何使你的应用程序对象成为远程服务。读者还将学习到如何无缝访问远程服务,就好像它们是你的应用程序中的其他对象似的。这一章研究的远程技术将包括RMI、Hessian/Burlap、基于SOAP的Web服务以及Spring自己的Httplnvokero
虽然第8章涉及Spring中的Web服务,但是第9章通过研究Spring-WS工程,从另一个角度来看Web服务。在这一章中,读者将学习到如何使用Spring-WS来构建契约优先(contract-first)的Web服务,在这些服务中,服务的契约被从它的实现中去耦。
第10章着眼于利用Spring与JMS一同发送和接收异步消息。除了与Spring相关的基本的JMS操作之外,读者还将学习到如何利用开放源码的Lingo工程在JMS上提供和使用异步远程服务。
尽管Spring大大削减了对EJB的需求,但是读者仍然可能会需要同时使用Spring和EJB。因此,第11章研究如何把Spring和EJB集成在一起。读者将学习到如何编写启用Spring的EJB,如何把EJB引用装配进Spring应用程序上下文中,以及如何利用EJB类注释来配置SpringBean。
作为第二部分最后一章,第12章将向读者演示如何利用Spring来制定工作计划、发送电子邮件、访问JNDI配置的资源以及和JMX一起管理应用程序对象。
第三部分把对于Spring的讨论向最终用户更移近了一小步,考虑利用Spring构建Web应用程序的各种方式。
第13章介绍了Spring自己的MVCWeb框架。读者将会学到Spring是如何透明地把Web参数绑定到业务对象,同时又提供数据验证和错误处理功能的。你还将看到利用大量精选的Spring拦截器来向Web应用程序添加功能是多么的容易。
序言回到顶部↑
那是2005年12月7日,我正站在佛罗里达州迈阿密海滩上一家酒店的大型会议厅里。那间屋子里挤满了来自世界各地的开发人员,他们悻悻然地来到佛罗里达州南部这片美丽的沙滩,都是为了一个目的:谈论Spring。.
我能说些什么呢?满屋的痴迷者。相比于惬意的阳光浴和舒爽的冲浪运动,我们更愿意沉浸在笔记本电脑屏幕温暖的辉光里,相互切磋这个我们痴狂已久的框架开发技术。
在那个特别的夜晚,当Spring的创建者罗德·约翰逊(Rod Johnson)介绍此次会议的开放式主旨时,我们都专注地倾听着他的一言一语。他谈到了Spring的起源以及在与其有关的工作中享受到的成功乐趣。然后,他邀请了一些Spring团队成员到讲台上,介绍下——版本中将具有的新特性。
罗德并没有长篇大论地夸夸其谈,而是做了一项重要宣布,吸引了在场每一个人的注意力。当时,我们都在期待这些绝妙的新特性将会在Springl.3(推测的下一个Spring版本)中可以使用。然而出乎意料的是,罗德宣布,不会再有Springl.3,下一个版本将是Spring2.0。
提高下一次发布的主版本号的决定并不会轻易做出。这样的一个行动暗示着Spring会有一个重大的跃升。如果Spring的下一个版本是2.0,这意味着它的功能将会有显著的提升。果然,在10个月之后,具有许许多多新的性能的Spring2.0发布了,它包括:
·简化的XML配置以及创建自定义配置元素的选项
·大大简化的AOP和事务处理支持Java 5注解,用于声明切面、事务元和所需的Bean属性
·可以从在JRuby、Groovy或BeanShell中编写的脚本里创建Bean
·新的JDBC模板,用于已被命名的参数和Java 5特性
·改进的Java消息服务(JMS)支持,包括异步接收消息(用于创建消息驱动的POJO)
·一个新的格式绑定的JSP标签库
·几个配置约定改进,用于减少配置Spring所需的XML量..
·支持Java Persistence API(JPA)
·放大的Bean辖区,包括Web应用Bean的请求与对话辖区
·可以在Spring不创建的对象(例如,域对象)上执行依赖注入
罗德的发言中强调的最重要的一点是,如果正在被引入的丰富的新特性不能够使跳跃升级后的2.0版有巨大的改进的话,那么就没必要在此时此刻进行发布。
那还不是全部的新性能。除了正在对核心Spting Framework所做的这些工作外,几个令人感兴趣的Spring相关工程也在进行之中,用于在Spting之上提供额外的性能。它们有:
·基于SpringMVC的SpringWebFlow,允许开发基于Flow的Web应用
·XFire,用于把你的SpringBean输出为SOAPWeb服务
·Spring-WS,用于创建“契约优先”(contract-first)的Web访问
我能说些什么呢?满屋的痴迷者。相比于惬意的阳光浴和舒爽的冲浪运动,我们更愿意沉浸在笔记本电脑屏幕温暖的辉光里,相互切磋这个我们痴狂已久的框架开发技术。
在那个特别的夜晚,当Spring的创建者罗德·约翰逊(Rod Johnson)介绍此次会议的开放式主旨时,我们都专注地倾听着他的一言一语。他谈到了Spring的起源以及在与其有关的工作中享受到的成功乐趣。然后,他邀请了一些Spring团队成员到讲台上,介绍下——版本中将具有的新特性。
罗德并没有长篇大论地夸夸其谈,而是做了一项重要宣布,吸引了在场每一个人的注意力。当时,我们都在期待这些绝妙的新特性将会在Springl.3(推测的下一个Spring版本)中可以使用。然而出乎意料的是,罗德宣布,不会再有Springl.3,下一个版本将是Spring2.0。
提高下一次发布的主版本号的决定并不会轻易做出。这样的一个行动暗示着Spring会有一个重大的跃升。如果Spring的下一个版本是2.0,这意味着它的功能将会有显著的提升。果然,在10个月之后,具有许许多多新的性能的Spring2.0发布了,它包括:
·简化的XML配置以及创建自定义配置元素的选项
·大大简化的AOP和事务处理支持Java 5注解,用于声明切面、事务元和所需的Bean属性
·可以从在JRuby、Groovy或BeanShell中编写的脚本里创建Bean
·新的JDBC模板,用于已被命名的参数和Java 5特性
·改进的Java消息服务(JMS)支持,包括异步接收消息(用于创建消息驱动的POJO)
·一个新的格式绑定的JSP标签库
·几个配置约定改进,用于减少配置Spring所需的XML量..
·支持Java Persistence API(JPA)
·放大的Bean辖区,包括Web应用Bean的请求与对话辖区
·可以在Spring不创建的对象(例如,域对象)上执行依赖注入
罗德的发言中强调的最重要的一点是,如果正在被引入的丰富的新特性不能够使跳跃升级后的2.0版有巨大的改进的话,那么就没必要在此时此刻进行发布。
那还不是全部的新性能。除了正在对核心Spting Framework所做的这些工作外,几个令人感兴趣的Spring相关工程也在进行之中,用于在Spting之上提供额外的性能。它们有:
·基于SpringMVC的SpringWebFlow,允许开发基于Flow的Web应用
·XFire,用于把你的SpringBean输出为SOAPWeb服务
·Spring-WS,用于创建“契约优先”(contract-first)的Web访问
媒体评论回到顶部↑
“真是一本好书……极度推荐。”.
——Javalobby.org
“……这本书的确是一本易读、易懂又实在有用的Spring向导书。如果你认为自己在Spring方面还有全方位学习的需要,那么它应该有足够的理由在你的书架上占据一席之地。”...
——熊节,ThoughtWorks咨询师
——Javalobby.org
“……这本书的确是一本易读、易懂又实在有用的Spring向导书。如果你认为自己在Spring方面还有全方位学习的需要,那么它应该有足够的理由在你的书架上占据一席之地。”...
——熊节,ThoughtWorks咨询师
书摘回到顶部↑
第1章开始Spring之旅
本章内容:
Spring核心模块
解耦应用对象
使用AOP管理交叉问题
一切从Bean开始。
在1996年,Java还只是一个令人兴奋的刚出生的开发语言,许多开发者之所以非常关注它是因为他们看到了如何使用Applet来创建动态的Web应用,但是很快他们看到这个陌生的新语言不只是能做些耍把戏的卡通程序。不同于之前的其他语言,Java可以实现使用分布的模块来建立一个复杂的应用,它们为Applet而来,为组件而留。
1996年12月,Sun微系统公司发布了JavaBeans 1.00-A规范。JavaBeans为Java定义了软件组件模型。这个规范规定了一系列的编码规范,这使简单的Java对象可以被重用,并且很容易就组成比较复杂的应用。尽管JavaBeans起初是为定义可重用应用组件而生的,但是它们被大量地用在了用户窗口模型中。它过于简单,以至于无法胜任任何实际的工作。企业级应用开发人员想得到更多的功能。
复杂的应用往往需要一些服务,如事务支持、安全、分布计算等,这些服务是JavaBeans无法直接提供的。所以在1998年3月,Sun发布了EJB1.0规范。该规范把Java组件扩展到服务器端,提供了很多必需的企业级服务,但是它不再像原来的JavaBeans那样简单了。事实上,除了名字和JavaBeans有点相像外,EJB已经和JavaBeans没有什么关系了。
尽管很多成功的应用是使用EJB建立的,EJB从来没有实现过它的预期目标——简化企业级应用开发。EJB的声明式编程模型确实简化了很多基础设施层面的开发,如事务和安全,但在部署文件维护和各种接口(home、remote/local接口)实现等方面变得很复杂。开发人员慢慢地不再对EJB痴迷,结果这几年EJB的普及率持续下降,很多开发人员开始寻找其他简单的方法。
……
本章内容:
Spring核心模块
解耦应用对象
使用AOP管理交叉问题
一切从Bean开始。
在1996年,Java还只是一个令人兴奋的刚出生的开发语言,许多开发者之所以非常关注它是因为他们看到了如何使用Applet来创建动态的Web应用,但是很快他们看到这个陌生的新语言不只是能做些耍把戏的卡通程序。不同于之前的其他语言,Java可以实现使用分布的模块来建立一个复杂的应用,它们为Applet而来,为组件而留。
1996年12月,Sun微系统公司发布了JavaBeans 1.00-A规范。JavaBeans为Java定义了软件组件模型。这个规范规定了一系列的编码规范,这使简单的Java对象可以被重用,并且很容易就组成比较复杂的应用。尽管JavaBeans起初是为定义可重用应用组件而生的,但是它们被大量地用在了用户窗口模型中。它过于简单,以至于无法胜任任何实际的工作。企业级应用开发人员想得到更多的功能。
复杂的应用往往需要一些服务,如事务支持、安全、分布计算等,这些服务是JavaBeans无法直接提供的。所以在1998年3月,Sun发布了EJB1.0规范。该规范把Java组件扩展到服务器端,提供了很多必需的企业级服务,但是它不再像原来的JavaBeans那样简单了。事实上,除了名字和JavaBeans有点相像外,EJB已经和JavaBeans没有什么关系了。
尽管很多成功的应用是使用EJB建立的,EJB从来没有实现过它的预期目标——简化企业级应用开发。EJB的声明式编程模型确实简化了很多基础设施层面的开发,如事务和安全,但在部署文件维护和各种接口(home、remote/local接口)实现等方面变得很复杂。开发人员慢慢地不再对EJB痴迷,结果这几年EJB的普及率持续下降,很多开发人员开始寻找其他简单的方法。
……
评论交流
共有42人开贴评论 49人参与评论 32人参与打分 查看
评价等级:



发表于:2008-11-12 2:04:00
书的内容是好的,可是翻译实在不行,不适合新手看(虽然讲解很通俗易懂,可是翻译真的太烂了,举个例子,一般Dependency Injection会翻译为“依赖注入”,可是这本书不同地方有不同翻译,有的翻译为“从属注入”。。还有就是AOP的内容,本来AOP的术语就不易理解,要是没有一定基础和使用经验,翻译之后简直看不下去。还有很多就不说了。。失望啊)
这本书也不适合进阶学习,因为内容太简单了,不过符合写书的初衷---教你怎么用spring
总的来说,书比较一般,始终还是英文版好,给个3星:)
这本书也不适合进阶学习,因为内容太简单了,不过符合写书的初衷---教你怎么用spring
总的来说,书比较一般,始终还是英文版好,给个3星:)
| 我要写评论 |
| 查看所有评论交流(共42条) |


点击看大图




加载中...