第一部分 Spring的核心
第1章 Spring之旅 2
1.1 简化Java开发 3
1.1.1 激发POJO的潜能 4
1.1.2 依赖注入 5
1.1.3 应用切面 9
1.1.4 使用模板消除样板式代码 13
1.2 容纳你的Bean 15
1.2.1 与应用上下文共事 16
1.2.2 Bean的生命周期 17
1.3 俯瞰Spring风景线 19
1.3.1 Spring模块 19
1.3.2 Spring Portfolio 22
1.4 Spring新功能 25
1.4.1 Spring 2.5新特性 26
1.4.2 Spring 3.0新特性 26
1.4.3 Spring Portfollo新特性 27
1.5 小结 28
第2章 装配Bean 29
2.1 声明Bean 30
2.1.1 创建Spring配置 30
2.1.2 声明一个简单Bean 31
2.1.3 通过构造器注入 33
2.1.4 Bean的作用域 37
2.1.5 初始化和销毁Bean 38
2.2 注入Bean属性 40
2.2.1 注入简单值 41
2.2.2 引用其他Bean 42
2.2.3 使用Spring的命名空间p装配属性 45
2.2.4 装配集合 46
2.2.5 装配空值 50
2.3 使用表达式装配 51
2.3.1 SpEL的基本原理 51
2.3.2 在SpEL值上执行操作 54
2.3.3 在SpEL中筛选集合 58
2.4 小结 62
第3章 最小化Spring XML配置 63
3.1 自动装配Bean属性 64
3.1.1 4种类型的自动装配 64
3.1.2 默认自动装配 68
3.1.3 混合使用自动装配和显式装配 68
3.2 使用注解装配 69
3.2.1 使用@Autowired 70
3.2.2 借助@Inject实现基于标准的自动装配 74
3.2.3 在注解注入中使用表达式 76
3.3 自动检测Bean 77
3.3.1 为自动检测标注Bean 78
3.3.2 过滤组件扫描 79
3.4 使用Spring基于Java的配置 80
3.4.1 创建基于Java的配置 80
3.4.2 定义一个配置类 81
3.4.3 声明一个简单的Bean 81
3.4.4 使用Spring的基于Java的配置进行注入 82
3.5 小结 83
第4章 面向切面的Spring 84
4.1 什么是面向切面编程 85
4.1.1 定义AOP术语 86
4.1.2 Spring对AOP的支持 88
4.2 使用切点选择连接点 90
4.2.1 编写切点 91
4.2.2 使用Spring的bean()指示器 92
4.3 在XML中声明切面 93
4.3.1 声明前置和后置通知 94
4.3.2 声明环绕通知 96
4.3.3 为通知传递参数 98
4.3.4 通过切面引入新功能 100
4.4 注解切面 102
4.4.1 注解环绕通知 104
4.4.2 传递参数给所标注的通知 105
4.4.3 标注引入 105
4.5 注入AspectJ切面 107
4.6 小结 109
第二部分 Spring应用程序的核心组件
第5章 征服数据库 112
5.1 Spring的数据访问哲学 113
5.1.1 了解Spring的数据访问异常体系 114
5.1.2 数据访问模板化 116
5.1.3 使用DAO支持类 118
5.2 配置数据源 119
5.2.1 使用JNDI数据源 119
5.2.2 使用数据源连接池 120
5.2.3 基于JDBC驱动的数据源 121
5.3 在Spring中使用JDBC 122
5.3.1 应对失控的JDBC代码 122
5.3.2 使用JDBC模板 125
5.4 在Spring中集成Hibernate 130
5.4.1 Hibernate概览 131
5.4.2 声明Hibernate的Session工厂 132
5.4.3 构建不依赖于Spring的Hibernate代码 134
5.5 Spring与Java持久化API 136
5.5.1 配置实体管理器工厂 136
5.5.2 编写基于JPA的DAO 140
5.6 小结 142
第6章 事务管理 144
6.1 理解事务 145
6.1.1 用4个词来表示事务 146
6.1.2 理解Spring对事务管理的支持 147
6.2 选择事务管理器 147
6.2.1 JDBC事务 149
6.2.2 Hibernate事务 149
6.2.3 Java持久化API事务 150
6.2.4 JTA(Java Transaction API)事务 151
6.3 在Spring中的编码事务 151
6.4 声明式事务 153
6.4.1 定义事务属性 154
6.4.2 在XML中定义事务 157
6.4.3 定义注解驱动的事务 159
6.5 小结 160
第7章 使用Spring MVC构建Web应用程序 162
7.1 Spring MVC起步 163
7.1.1 跟踪Spring MVC的请求 163
7.1.2 搭建Spring MVC 165
7.2 编写基本的控制器 166
7.2.1 配置注解驱动的Spring MVC 167
7.2.2 定义首页的控制器 168
7.2.3 解析视图 171
7.2.4 定义首页的视图 175
7.2.5 完成Spring应用上下文 177
7.3 处理控制器的输入 178
7.3.1 编写处理输入的控制器 179
7.3.2 渲染视图 181
7.4 处理表单 183
7.4.1 展现注册表单 183
7.4.2 处理表单输入 185
7.4.3 校验输入 187
7.5 处理文件上传 191
7.5.1 在表单上添加文件上传域 191
7.5.2 接收上传的文件 192
7.5.3 配置Spring支持文件上传 195
7.6 小结 196
第8章 使用Spring Web Flow 197
8.1 安装Spring Web Flow 198
8.1.1 在Spring中使用Web Flow 198
8.2 流程的组件 201
8.2.1 状态 201
8.2.2 转移 204
8.2.3 流程数据 205
8.3 组合起来:披萨流程 207
8.3.1 定义基本流程 207
8.3.2 收集顾客信息 211
8.3.3 构建订单 216
8.3.4 支付 219
8.4 保护Web流程 211
8.5 小结 221
第9章 保护Spring应用 223
9.1 Spring Security介绍 224
9.1.1 Spring Security起步 224
9.1.2 使用Spring Security配置命名空间 225
9.2 保护Web请求 226
9.2.1 代理Servlet过滤器 226
9.2.2 配置最小化的Web安全性 227
9.2.3 拦截请求 231
9.3 保护视图级别的元素 234
9.3.1 访问认证信息的细节 234
9.3.2 根据权限渲染 235
9.4 认证用户 237
9.4.1 配置内存用户存储库 238
9.4.2 基于数据库进行认证 239
9.4.3 基于LDAP进行认证 240
9.4.4 启用remember-me功能 244
9.5 保护方法调用 245
9.5.1 使用@Secured注解保护方法调用 245
9.5.2 使用JSR-250的@RolesAllowed注解 246
9.5.3 使用SpEL实现调用前后的安全性 246
9.5.4 声明方法级别的安全性切点 250
9.6 小结 251
第三部分 Spring集成
第10章 使用远程服务 254
10.1 Spring远程调用概览 255
10.2 使用RMI 257
10.2.1 发布一个RMI服务 257
10.2.2 装配RMI服务 260
10.3 使用Hessian和Burlap发布远程服务 262
10.3.1 使用Hessian和Burlap发布Bean的功能 263
10.3.2 访问Hessian/Burlap服务 266
10.4 使用Spring的HttpInvoker 267
10.4.1 将把Bean发布为HTTP服务 267
10.4.2 通过HTTP访问服务 269
10.5 发布和使用Web服务 270
10.5.1 创建JAX-WS端点 271
10.5.2 在客户端代理JAX-WS服务 275
10.6 小结 276
第11章 为Spring添加REST功能 277
11.1 了解REST 278
11.1.1 REST的基本原理 278
11.1.2 Spring是如何支持REST的 279
11.2 编写面向资源的控制器 279
11.2.1 剖析RESTless的控制器 280
11.2.2 处理RESTful URL 281
11.2.3 执行REST动作 284
11.3 表述资源 287
11.3.1 协商资源表述 287
11.3.2 使用HTTP信息转换器 290
11.4 编写REST客户端 293
11.4.1 了解RestTemplate的操作 295
11.4.2 GET资源 296
11.4.3 PUT资源 298
11.4.4 DELETE资源 300
11.4.5 POST资源数据 301
11.4.6 交换资源 303
11.5 提交RESTful表单 305
11.5.1 在JSP中渲染隐藏的方法域 306
11.5.2 发布真正的请求 307
11.6 小结 308
第12章 Spring消息 310
12.1 JMS简介 311
12.1.1 构建JMS 312
12.1.2 评估JMS的优点 314
12.2 在Spring中搭建消息代理 316
12.2.1 创建连接工厂 316
12.2.2 声明ActiveMQ消息目的地 317
12.3 使用Spring的JMS模板 318
12.3.1 处理失控的JMS代码 318
12.3.2 使用JMS模板 319
12.4 创建消息驱动的POJO 324
12.4.1 创建消息监听器 325
12.4.2 配置消息监听器 326
12.5 使用基于消息的RPC 327
12.5.1 使用Spring基于消息的RPC 328
12.5.2 使用Lingo实现异步RPC 330
12.6 小结 332
第13章 使用JMX管理Spring Bean 333
13.1 将Spring Bean导出为MBean 334
13.1.1 通过名称发布方法 337
13.1.2 使用接口定义MBean的操作和属性 339
13.1.3 使用注解驱动的MBean 340
13.1.4 处理MBean冲突 342
13.2 远程MBean 343
13.2.1 发布远程MBean 343
13.2.2 访问远程MBean 344
13.2.3 代理MBean 346
13.3 处理通知 347
13.3.1 监听通知 348
13.4 小结 349
第14章 其他Spring技巧 350
14.1 外部化配置 351
14.1.1 替换属性占位符 351
14.1.2 重写属性 354
14.1.3 加密外部属性 355
14.2 装配JNDI对象 357
14.2.1 JNDI的传统用法 357
14.2.2 装配JNDI对象 359
14.2.3 将EJB装配到Spring中 362
14.3 发送邮件 363
14.3.1 配置邮件发送器 363
14.3.2 构建邮件 365
14.4 调度和后台任务 370
14.4.1 声明调度方法 371
14.4.2 声明异步方法 372
14.5 小结 373
14.6 结束语 374
· · · · · · (
收起)