Spring in Action.pdf

Spring in Action.pdf
 

书籍描述

编辑推荐
《Spring in Action(中文版)(第2版)》适合所有Java开发人员阅读,特别是对企业级Java开发人员更有帮助。《Spring in Action(中文版)(第2版)》循序渐进地指导读者浏览贯穿《Spring in Action(中文版)(第2版)》的复杂示例。Spring最突出之处在于它使企业级系统开发变得简单,所以,企业级系统开发人员会更加欣赏《Spring in Action(中文版)(第2版)》中的示例代码。《Spring in Action(中文版)(第2版)》最后4章描述了Spring是如何为Web层开发提供支持的,如果你是一位Web开发人员,你会发现《Spring in Action(中文版)(第2版)》的最后一部分特别有用。

作者简介
作者:(美国)沃尔斯 (Craig Walls) (美国)布雷登巴赫 (Ryan Bredenbach) 译者:毕庆红

目录
第一部分 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 通过构造函数注入

2.3 注入Bean属性
2.3.1 注入简单的数值
2.3.2 使用其他的Bean
2.3.3 装配集合
2.3.4 装配空值

2.4 自动装配
2.4.1 四种自动装配类型
2.4.2 混合使用自动和手动装配
2.4.3 何时采用自动装配

2.5 控制Bean创建
2.5.1 Bean范围化
2.5.2 利用工厂方法来创建Bean
2.5.3 初始化和销毁Bean
2.6 小结

第3章 高级Bean装配
3.1 声明父Bean和子Bean
3.1.1 抽象基Bean类型
3.1.2 抽象共同属性

3.2 方法注入
3.2.1 基本的方法替换
3.2.2 获取器注入

3.3 注入非Spring Bean
3.4 注册自定义属性编辑器
3.5 使用Spring的特殊Bean
3.5.1 后处理Bean
3.5.2 Bean工厂的后处理
3.5.3 配置属性的外在化
3.5.4 提取文本消息
3.5.5 程序事件的解耦
3.5.6 让Bean了解容器

3.6 脚本化的Bean
3.6.1 给椰子上Lime
3.6.2 脚本化Bean
3.6.3 注入脚本化Bean的属性
3.6.4 刷新脚本化Bean
3.6.5 编写内嵌的脚本化Bean
3.7 小结

第4章 通知Bean
4.1 AOP简介
4.1.1 定义AOP术语
4.1.2 Spring对AOP的支持

4.2 创建典型的Spring切面
4.2.1 创建通知
4.2.2 定义切点和通知者
4.2.3 使用ProxyFactoryBean

4.3 自动代理
4.3.1 为Spring切面创建自动代理
4.3.2 自动代理@AspectJ切面
4.4 定义纯粹的POJO切面
4.5 注入AspectJ切面
4.6 小结

第二部分 企业Spring
第5章 使用数据库
5.1 Spring的数据访问哲学
5.1.1 了解Spring数据访问的异常体系
5.1.2 数据访问的模板化
5.1.3 使用DAO支持类

5.2 配置数据源
5.2.1 使用JNDI数据源
5.2.2 使用数据源连接池
5.2.3 基于JDBC驱动的数据源

5.3 在Spring里使用JDBC
5.3.1 处理失控的JDBC代码
5.3.2 使用JDBC模板
5.3.3 使用Spring对JDBC的DAO支持类

5.4 在Spring里集成Hibernate
5.4.1 选择Hibernate的版本
5.4.2 使用Hibernate模板
5.4.3 建立基于Hibernate的DAO
5.4.4 使用Hibernate 3上下文会话

5.5 Spring和Java持久API
5.5.1 使用JPA模板
5.5.2 创建一个实体管理器工厂
5.5.3 建立使用JPA的DAO

5.6 Spring和iBATIS
5.6.1 配置iBATIS客户模板
5.6.2 建立基于iBATIS的DAO

5.7 缓存
5.7.1 配置缓存方案
5.7.2 缓存的代理Bean
5.7.3 注解驱动的缓存
5.8 小结

第6章 事务管理
6.1 理解事务
6.1.1 仅用4个词解释事务
6.1.2 理解Spring对事务管理的支持

6.2 选择事务管理器
6.2.1 JDBC事务
6.2.2 Hibernate事务
6.2.3 JPA事务
6.2.4 JDO事务
6.2.5 JTA事务

6.3 在Spring中编写事务
6.4 声明式事务
6.4.1 定义事务参数
6.4.2 代理事务
6.4.3 在Spring 2.0里声明事务
6.4.4 定义注释驱动事务
6.5 小结

第7章 保护Spring
7.1 Spring Security介绍
7.2 验证用户身份
7.2.1 配置Provider Manager
7.2.2 根据数据库验证身份
7.2.3 根据LDAP仓库进行身份验证

7.3 控制访问
7.3.1 访问决策投票
7.3.2 决定如何投票
7.3.3 处理投票弃权

7.4 保护Web应用程序
7.4.1 代理Spring Security的过滤器
7.4.2 处理安全上下文
7.4.3 提示用户登录
7.4.4 处理安全例外
7.4.5 强制Web安全性
7.4.6 确保一个安全的通道

7.5 视图层安全
7.5.1 有条件地渲染内容
7.5.2 显示用户身份验证信息

7.6 保护方法调用
7.6.1 创建一个安全切面
7.6.2 使用元数据保护方法
7.7 小结

第8章 Spring和基于POJO的远程服务
8.1 Spring远程调用概览
8.2 与RMI一起工作
8.2.1 连接RMI服务
8.2.2 输出RMI服务

8.3 使用Hessian和Burlap的远程调用
8.3.1 访问Hessian/Burlap服务
8.3.2 用Hessian或Burlap公开Bean的功能

8.4 使用HTTP invoker
8.4.1 通过HTTP访问服务
8.4.2 把Bean作为HTTP服务公开

8.5 Spring和Web服务
8.5.1 使用XFire将Bean输出为Web服务
8.5.2 使用JSR-181注释声明Web服务
8.5.3 消费Web服务
8.5.4 使用XFire客户端代理Web服务
8.6 小结

第9章 在Spring中建立契约优先Web服务
9.1 介绍Spring-WS
9.2 定义契约(首先!)
9.3 使用服务端点处理消息
9.3.1 建立基于JDOM消息的端点
9.3.2 序列化消息载荷

9.4 合并在一起
9.4.1 Spring-WS:全景视图
9.4.2 将消息映射到端点
9.4.3 置入服务端点
9.4.4 配置消息序列化器
9.4.5 处理端点异常
9.4.6 提供WSDL文件
9.4.7 部署服务

9.5 消费Spring-WS Web服务
9.5.1 使用Web服务模板
9.5.2 使用Web服务的网关支持
9.6 小结

第10章 Spring消息
10.1 JMS简介
10.1.1 构建JMS
10.1.2 介绍JMS的优点
10.1.3 在Spring中安装ActiveMQ

10.2 协同使用JMS和Spring
10.2.1 处理冗长失控的JMS代码
10.2.2 使用JMS模板
10.2.3 转换消息

10.2.4 将Spring的网关支持类应用于JMS
10.3 创建消息驱动POJO
10.3.1 创建消息监听器
10.3.2 编写纯POJO MDP

10.4 使用基于消息的RPC
10.4.1 引入Lingo
10.4.2 输出服务
10.4.3 代理JMS
10.5 小结

第11章 Spring和EJB
11.1 在Spring中置入EJB
11.1.1 代理会话Bean(EJB 2.x)
11.1.2 将EJB置入Spring Bean

11.2 开发Spring驱动的EJB(EJB 2.x)
11.3 Spring和EJB3
11.3.1 引入Pitchfork
11.3.2 从Pitchfork起步
11.3.3 通过注释注入资源
11.3.4 使用注释声明拦截器
11.4 小结

第12章 访问企业服务
12.1 从JNDI中获取对象
12.1.1 使用传统的JNDI
12.1.2 注入JNDI对象
12.1.3 在Spring 2中注入JNDI对象

12.2 发送电子邮件
12.2.1 配置邮件发送器
12.2.2 构建电子邮件

12.3 调度任务
12.3.1 使用Java Timer调度任务
12.3.2 使用Quartz调度器
12.3.3 按调度计划调用方法

12.4 使用JMX管理Spring Bean
12.4.1 将Spring Bean输出为MBean
12.4.2 远程访问MBean
12.4.3 处理通知
12.5 小结

第三部分 Spring客户端
第13章 处理Web请求
13.1 开始Spring MVC之旅
13.1.1 请求生命中的一天
13.1.2 配置DispatcherServlet
13.1.3 Spring MVC概述

13.2 将请求映射到控制器
13.2.1 使用SimpleUrlHandler Mapping
13.2.2 使用ControllerClassName HandlerMapping
13.2.3 使用元数据映射控制器
13.2.4 使用多映射处理器

13.3 用控制器处理请求
13.3.1 处理命令
13.3.2 处理表单提交
13.3.3 用向导处理复杂表单
13.3.4 使用一次性控制器

13.4 处理异常
13.5 小结

第14章 渲染Web视图
14.1 视图解析
14.1.1 使用模板视图
14.1.2 解析视图Bean
14.1.3 选择视图解析器

14.2 使用Spring模板
14.2.1 绑定表单数据
14.2.2 渲染被存储在外部的文本
14.2.3 显示错误

14.3 使用Tile设计页面布局
14.3.1 Tile视图
14.3.2 Tile控制器

14.4 使用JSP的替代技术
14.4.1 使用Velocity模板
14.4.2 使用FreeMarker

14.5 产生非HTML输出
14.5.1 产生Excel工作表
14.5.2 产生PDF文档
14.5.3 开发自定义视图
14.6 小结

第15章 使用Spring Web Flow
15.1 开始Spring Web Flow之旅
15.1.1 安装Spring Web Flow
15.1.2 配置流程执行程序
15.1.3 登记流程定义

15.2 布置流程的基础
15.2.1 流程变量
15.2.2 start和end状态
15.2.3 搜集顾客信息
15.2.4 绑定比萨饼订单
15.2.5 完成订单
15.2.6 几个结束工作

15.3 高级Web流程技术
15.3.1 使用decision状态
15.3.2 提炼子流程并使用子状态

15.4 集成Spring Web Flow与其他框架
15.4.1 Jakarts Struts
15.4.2 JavaServer Face
15.5 小结

第16章 集成其他Web框架
16.1 协同使用Spring和Struts
16.1.1 向Struts注册Spring插件
16.1.2 编写知晓Spring的Struts动作
16.1.3 委托Spring配置的动作
16.1.4 关于Struts 2

16.2 协同使用Spring和WebWork 2/Struts 2
16.3 集成Spring和Tapestry
16.3.1 集成Spring和Tapestry 3
16.3.2 集成Spring和Tapestry 4

16.4 协同使用Spring和JSF
16.4.1 解析JSF管理的属性
16.4.2 解析Spring Bean
16.4.3 在JSF页面中使用Spring Bean
16.4.4 在JSF中暴露应用程序环境

16.5 Spring中带有DWR的支持Ajax的应用程序
16.5.1 直接Web远程控制
16.5.2 访问Spring管理的Bean DWR
16.6 小结
附录A 装配Spring
A.1 下载Spring
A.1.1 研究Spring发布
A.1.2 构建自己的类路径
A.2 把Spring添加为一个Maven 2依赖项
A.3 Spring与Ant
A.4 Spring与Log4j
附录B 用(和不用)Spring进行测试
B.1 测试简介
B.1.1 理解不同类型的测试
B.1.2 使用JUnit
B.1.3 Spring在测试中的角色
B.2 单元测试Spring MVC控制器
B.2.1 模拟对象
B.2.2 断言ModelAndView的内容
B.3 使用Spring进行综合测试
B.3.1 测试装配后的对象
B.3.2 综合测试事务处理对象
B.3.3 测试数据库
B.3.4 使用Gienah Testing在JUnit 4中进行测试
B.4 小结

序言
那是2005年12月7日,我正站在佛罗里达州迈阿密海滩上一家酒店的大型会议厅里。那间屋子里挤满了来自世界各地的开发人员,他们悻悻然地来到佛罗里达州南部这片美丽的沙滩,都是为了一个目的:谈论Spring。
我能说些什么呢?满屋的痴迷者。相比于惬意的阳光浴和舒爽的冲浪运动,我们更愿意沉浸在笔记本电脑屏幕温暖的辉光里,相互切磋这个我们痴狂已久的框架开发技术。
在那个特别的夜晚,当Spring的创建者罗德•约翰逊(Rod Johnson)介绍此次会议的开放式主旨时,我们都专注地倾听着他的一言一语。他谈到了Spring的起源以及在与其有关的工作中享受到的成功乐趣。然后,他邀请了一些Spring团队成员到讲台上,介绍下一版本中将具有的新特性。
罗德并没有长篇大论地夸夸其谈,而是做了一项重要宣布,吸引了在场每一个人的注意力。当时,我们都在期待这些绝妙的新特性将会在Spring 1.3(推测的下一个spring版本)中可以使用。然而出乎意料的是,罗德宣布,不会再有Spring 1.3,下一个版本将是Spring 2.0。
提高下一次发布的主版本号的决定并不会轻易做出。这样的一个行动暗示着Spring会有一个重大的跃升。如果spnng的下一个版本是2.0,这意味着它的功能将会有显著的提升。果然,在10个月之后,具有许许多多新的性能的Spring 2.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版有巨大的改进的话,那么就没必要在此时此刻进行发布。

文摘
插图:

Spring in Action

第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 in Action(中文版)(第2版)》分成三大部分并附有两个附录,每一部分分别对应Spring框架的一个领域:核心框架、业务和数据层、表示层。每一部分既是建立在前一部分的基础上,同时也可以独立存在。因此,读者不必从头开始,完全可以直接深入到某个主题。书中第一部分展示了Spring框架的两个核心特性:依赖注入和面向切面编程。第二部分以第一部分介绍的DI和AOP特性为基础,叙述了如何将这两个概念应用到应用程序的数据和业务层中。第三部分介绍了Spring构建 Web应用程序的各种方式。
《Spring in Action(中文版)(第2版)》适合所有Java开发人员阅读,特别是对企业级Java开发人员更有帮助。《Spring in Action(中文版)(第2版)》循序渐进地指导读者浏览贯穿《Spring inAction》的复杂示例。Spring最突出之处在于它使企业级系统开发变得简单,所以,企业级系统开发人员会更加欣赏《Spring in Action(中文版)(第2版)》中的示例代码。《Spring in Action(中文版)(第2版)》最后4章描述了Spring是如何为Web层开发提供支持的,如果你是一位Web开发人员,你会发现《Spring in Action(中文版)(第2版)》的最后一部分特别有用。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多