《Spring 攻略》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:GaryMak著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115208903
  • 页数:603 页
图书介绍:本书分为三个部分共19章,涵盖了Spring 2.5从基础概念到高级应用的所有主题,每章讨论一个Spring主题,每个主题中包括多个问题和这些问题的解决方案。

第一部分 核心概念 2

第1章 控制反转和容器 2

1.1 使用容器管理组件 2

1.1.1 问题描述 2

1.1.2 解决方案 2

1.1.3 实现方法 3

1.2 使用服务定位器降低查找组件的复杂性 7

1.2.1 问题描述 7

1.2.2 解决方案 7

1.2.3 实现方法 7

1.3 应用控制反转和依赖注入 8

1.3.1 问题描述 8

1.3.2 解决方案 8

1.3.3 实现方法 9

1.4 理解不同类型的依赖注入 10

1.4.1 问题描述 10

1.4.2 解决方案 10

1.4.3 实现方法 11

1.5 使用配置文件配置容器 13

1.5.1 问题描述 13

1.5.2 解决方案 14

1.5.3 实现方法 14

1.6 小结 16

第2章 Spring简介 17

2.1 Spring Framework 17

2.1.1 Spring的模块介绍 17

2.1.2 Spring的发布版本 19

2.1.3 Spring的项目 20

2.2 安装Spring Framework 21

2.2.1 问题描述 21

2.2.2 解决方案 21

2.2.3 实现方法 21

2.3 建立Spring项目 22

2.3.1 问题描述 22

2.3.2 解决方案 22

2.3.3 实现方法 23

2.4 安装Spring IDE 24

2.4.1 问题描述 24

2.4.2 解决方案 24

2.4.3 实现方法 24

2.5 使用Spring IDE的Bean-supporting特性 26

2.5.1 问题描述 26

2.5.2 解决方案 26

2.5.3 实现方法 26

2.6 小结 31

第3章 Spring中的Bean配置 32

3.1 在Spring IoC容器里配置Bean 32

3.1.1 问题描述 32

3.1.2 解决方案 32

3.1.3 实现方法 32

3.2 实例化Spring IoC容器 36

3.2.1 问题描述 36

3.2.2 解决方案 36

3.2.3 实现方法 36

3.3 解决构造器歧义 38

3.3.1 问题描述 38

3.3.2 解决方案 38

3.3.3 实现方法 38

3.4 指定Bean引用 41

3.4.1 问题描述 41

3.4.2 解决方案 41

3.4.3 实现方法 41

3.5 通过依赖检查来检查属性 44

3.5.1 问题描述 44

3.5.2 解决方案 45

3.5.3 实现方法 45

3.6 通过@Required注解检查属性 46

3.6.1 问题描述 46

3.6.2 解决方案 46

3.6.3 实现方法 47

3.7 XML配置里的Bean自动装配 48

3.7.1 问题描述 48

3.7.2 解决方案 49

3.7.3 实现方法 49

3.8 使用@Autowired和@Resource自动装配Bean 52

3.8.1 问题描述 52

3.8.2 解决方案 52

3.8.3 实现方法 52

3.9 继承Bean配置 58

3.9.1 问题描述 58

3.9.2 解决方案 58

3.9.3 实现方法 58

3.10 为Bean属性定义集合 61

3.10.1 问题描述 61

3.10.2 解决方案 61

3.10.3 实现方法 61

3.11 为集合元素指定数据类型 67

3.11.1 问题描述 67

3.11.2 解决方案 67

3.11.3 实现方法 67

3.12 使用工厂Bean和Utility Schema定义集合 69

3.12.1 问题描述 69

3.12.2 解决方案 69

3.12.3 实现方法 69

3.13 在classpath中扫描组件 71

3.13.1 问题描述 71

3.13.2 解决方案 71

3.13.3 实现方法 72

3.14 小结 76

第4章 高级Spring IoC容器 77

4.1 通过调用构造器创建Bean 77

4.1.1 问题描述 77

4.1.2 解决方案 77

4.1.3 实现方法 77

4.2 通过调用静态工厂方法创建Bean 80

4.2.1 问题描述 80

4.2.2 解决方案 80

4.2.3 实现方法 80

4.3 通过调用实例工厂方法创建Bean 81

4.3.1 问题描述 81

4.3.2 解决方案 81

4.3.3 实现方法 81

4.4 使用Spring的工厂Bean创建Bean 83

4.4.1 问题描述 83

4.4.2 解决方案 83

4.4.3 实现方法 83

4.5 根据静态字段声明Bean 85

4.5.1 问题描述 85

4.5.2 解决方案 85

4.5.3 实现方法 85

4.6 根据对象属性声明Bean 86

4.6.1 问题描述 86

4.6.2 解决方案 86

4.6.3 实现方法 86

4.7 设置Bean的作用域 88

4.7.1 问题描述 88

4.7.2 解决方案 88

4.7.3 实现方法 88

4.8 定制Bean的初始化和销毁过程 90

4.8.1 问题描述 90

4.8.2 解决方案 90

4.8.3 实现方法 91

4.9 使Bean感知容器 95

4.9.1 问题描述 95

4.9.2 解决方案 95

4.9.3 实现方法 96

4.10 创建Bean后置处理器 96

4.10.1 问题描述 96

4.10.2 解决方案 96

4.10.3 实现方法 97

4.11 外部化Bean配置 100

4.11.1 问题描述 100

4.11.2 解决方案 100

4.11.3 实现方法 100

4.12 解析文本信息 101

4.12.1 问题描述 101

4.12.2 解决方案 101

4.12.3 实现方法 101

4.13 使用应用程序事件进行通信 103

4.13.1 问题描述 103

4.13.2 解决方案 103

4.13.3 实现方法 104

4.14 在Spring里注册属性编辑器 106

4.14.1 问题描述 106

4.14.2 解决方案 106

4.14.3 实现方法 106

4.15 创建定制的属性编辑器 108

4.15.1 问题描述 108

4.15.2 解决方案 109

4.15.3 实现方法 109

4.16 加载外部资源 110

4.16.1 问题描述 110

4.16.2 解决方案 110

4.16.3 实现方法 111

4.17 小结 113

第5章 动态代理和经典的Spring AOP 114

5.1 非模块化的横切关注点所带来的问题 115

5.1.1 追踪方法 116

5.1.2 验证参数 119

5.1.3 找出问题 120

5.2 使用动态代理模块化横切关注点 122

5.2.1 问题描述 122

5.2.2 解决方案 122

5.2.3 实现方法 122

5.3 使用经典的Spring通知来模块化横切关注点 127

5.3.1 问题描述 127

5.3.2 解决方案 127

5.3.3 实现方法 128

5.4 使用经典的Spring切入点匹配方法 135

5.4.1 问题描述 135

5.4.2 解决方案 135

5.4.3 实现方法 136

5.5 为Bean自动创建代理 138

5.5.1 问题描述 138

5.5.2 解决方案 138

5.5.3 实现方法 138

5.6 小结 140

第6章 Spring 2.xAOP和AspectJ支持 141

6.1 在Spring中启用AspectJ注解支持 141

6.1.1 问题描述 141

6.1.2 解决方案 142

6.1.3 实现方法 142

6.2 用AspectJ注解声明切面 144

6.2.1 问题描述 144

6.2.2 解决方案 144

6.2.3 实现方法 144

6.3 访问连接点信息 149

6.3.1 问题描述 149

6.3.2 解决方案 149

6.3.3 实现方法 149

6.4 指定切面优先级 150

6.4.1 问题描述 150

6.4.2 解决方案 150

6.4.3 实现方法 150

6.5 重用切入点定义 152

6.5.1 问题描述 152

6.5.2 解决方案 152

6.5.3 实现方法 152

6.6 编写AspectJ切入点表达式 154

6.6.1 问题描述 154

6.6.2 解决方案 154

6.6.3 实现方法 154

6.7 为Bean引入行为 158

6.7.1 问题描述 158

6.7.2 解决方案 158

6.7.3 实现方法 158

6.8 为Bean引入状态 161

6.8.1 问题描述 161

6.8.2 解决方案 161

6.8.3 实现方法 161

6.9 用基于XML的配置声明切面 163

6.9.1 问题描述 163

6.9.2 解决方案 163

6.9.3 实现方法 163

6.10 加载时在Spring中织入AspectJ切面 165

6.10.1 问题描述 165

6.10.2 解决方案 166

6.10.3 实现方法 166

6.11 在Spring中配置AspectJ切面 170

6.11.1 问题描述 170

6.11.2 解决方案 170

6.11.3 实现方法 170

6.12 将Spring Bean注入到领域对象中 171

6.12.1 问题描述 171

6.12.2 解决方案 171

6.12.3 实现方法 171

6.13 小结 174

第二部分 基础主题 178

第7章 Spring对JDBC的支持 178

7.1 直接使用JDBC的问题 178

7.1.1 建立应用程序数据库 179

7.1.2 理解DAO设计模式 180

7.1.3 用JDBC实现DAO 180

7.1.4 在Spring中配置数据源 182

7.1.5 运行DAO 183

7.2 用JDBC模板更新数据库 184

7.2.1 问题描述 184

7.2.2 解决方案 184

7.2.3 实现方法 184

7.3 用JDBC模板查询数据库 188

7.3.1 问题描述 188

7.3.2 解决方案 189

7.3.3 实现方法 189

7.4 简化JDBC模板的创建 193

7.4.1 问题描述 193

7.4.2 解决方案 193

7.4.3 实现方法 194

7.5 在Java 1.5中使用简单的JDBC模板 196

7.5.1 问题描述 196

7.5.2 解决方案 196

7.5.3 实现方法 196

7.6 在JDBC模板中使用具名参数 199

7.6.1 问题描述 199

7.6.2 解决方案 199

7.6.3 实现方法 199

7.7 将JDBC操作建模为细粒度的对象 201

7.7.1 问题描述 201

7.7.2 解决方案 201

7.7.3 实现方法 201

7.8 在Spring JDBC框架中处理异常 205

7.8.1 问题描述 205

7.8.2 解决方案 205

7.8.3 实现方法 205

7.9 小结 209

第8章 Spring中的事务管理 211

8.1 事务管理的问题 211

8.2 选择事务管理器实现 216

8.2.1 问题描述 216

8.2.2 解决方案 217

8.2.3 实现方法 217

8.3 用事务管理器API编程式地管理事务 218

8.3.1 问题描述 218

8.3.2 解决方案 218

8.3.3 实现方法 218

8.4 用事务模板编程式地管理事务 219

8.4.1 问题描述 219

8.4.2 解决方案 220

8.4.3 实现方法 220

8.5 用经典的Spring AOP声明式地管理事务 222

8.5.1 问题描述 222

8.5.2 解决方案 222

8.5.3 实现方法 222

8.6 用事务通知声明式地管理事务 224

8.6.1 问题描述 224

8.6.2 解决方案 224

8.6.3 实现方法 225

8.7 用@Transactional注解声明式地管理事务 226

8.7.1 问题描述 226

8.7.2 解决方案 226

8.7.3 实现方法 226

8.8 设置传播事务属性 227

8.8.1 问题描述 227

8.8.2 解决方案 227

8.8.3 实现方法 228

8.9 设置隔离事务属性 231

8.9.1 问题描述 231

8.9.2 解决方案 231

8.9.3 实现方法 232

8.10 设置回滚事务属性 238

8.10.1 问题描述 238

8.10.2 解决方案 238

8.10.3 实现方法 238

8.11 设置超时和只读事务属性 239

8.11.1 问题描述 239

8.11.2 解决方案 239

8.11.3 实现方法 239

8.12 用加载时织入来管理事务 240

8.12.1 问题描述 240

8.12.2 解决方案 241

8.12.3 实现方法 241

8.13 小结 244

第9章 Spring对ORM的支持 245

9.1 直接使用ORM框架的问题 245

9.1.1 利用Hibernate API和Hibernate XML映射持久化对象 247

9.1.2 利用Hibernate API和JPA注解持久化对象 250

9.1.3 用Hibernate作为JPA引擎持久化对象 252

9.2 在Spring中配置ORM资源工厂 255

9.2.1 问题描述 255

9.2.2 解决方案 256

9.2.3 实现方法 256

9.3 用Spring的ORM模板持久化对象 261

9.3.1 问题描述 261

9.3.2 解决方案 261

9.3.3 实现方法 262

9.4 用Hibernate的上下文会话持久化对象 267

9.4.1 问题描述 267

9.4.2 解决方案 267

9.4.3 实现方法 267

9.5 用JPA的上下文注入持久化对象 270

9.5.1 问题描述 270

9.5.2 解决方案 270

9.5.3 实现方法 270

9.6 小结 273

第10章 Spring MVC框架 274

10.1 用Spring MVC开发简单的Web应用程序 274

10.1.1 问题描述 274

10.1.2 解决方案 274

10.1.3 实现方法 275

10.2 将请求映射到处理程序 284

10.2.1 问题描述 284

10.2.2 解决方案 284

10.2.3 实现方法 285

10.3 用Handler Interceptor拦截请求 287

10.3.1 问题描述 287

10.3.2 解决方案 287

10.3.3 实现方法 288

10.4 解析用户区域 290

10.4.1 问题描述 290

10.4.2 解决方案 290

10.4.3 实现方法 290

10.5 外部化区分区域的文本信息 292

10.5.1 问题描述 292

10.5.2 解决方案 292

10.5.3 实现方法 292

10.6 按名称解析视图 293

10.6.1 问题描述 293

10.6.2 解决方案 293

10.6.3 实现方法 293

10.7 将异常映射到视图 296

10.7.1 问题描述 296

10.7.2 解决方案 296

10.7.3 实现方法 296

10.8 构造ModelAndView对象 297

10.8.1 问题描述 297

10.8.2 解决方案 297

10.8.3 实现方法 298

10.9 创建带有参数化视图的控制器 299

10.9.1 问题描述 299

10.9.2 解决方案 299

10.9.3 实现方法 300

10.10 用表单控制器处理表单 301

10.10.1 问题描述 301

10.10.2 解决方案 301

10.10.3 实现方法 302

10.11 用向导表单控制器处理多页表单 313

10.11.1 问题描述 313

10.11.2 解决方案 313

10.11.3 实现方法 313

10.12 将多个动作分组到一个控制器 321

10.12.1 问题描述 321

10.12.2 解决方案 321

10.12.3 实现方法 321

10.13 创建Excel和PDF视图 326

10.13.1 问题描述 326

10.13.2 解决方案 326

10.13.3 实现方法 326

10.14 用注解开发控制器 330

10.14.1 问题描述 330

10.14.2 解决方案 330

10.14.3 实现方法 330

10.15 小结 336

第11章 整合Spring与其他Web框架 337

11.1 在通用的Web应用程序中访问Spring 337

11.1.1 问题描述 337

11.1.2 解决方案 337

11.1.3 实现方法 338

11.2 整合Spring与Struts 1.x 342

11.2.1 问题描述 342

11.2.2 解决方案 342

11.2.3 实现方法 342

11.3 整合Spring与JSF 347

11.3.1 问题描述 347

11.3.2 解决方案 348

11.3.3 实现方法 348

11.4 整合Spring与DWR 352

11.4.1 问题描述 352

11.4.2 解决方案 352

11.4.3 实现方法 352

11.5 小结 355

第12章 Spring对测试的支持 356

12.1 用JUnit和TestNG创建测试 357

12.1.1 问题描述 357

12.1.2 解决方案 357

12.1.3 实现方法 357

12.2 创建单元测试和集成测试 361

12.2.1 问题描述 361

12.2.2 解决方案 362

12.2.3 实现方法 362

12.3 单元测试Spring MVC控制器 370

12.3.1 问题描述 370

12.3.2 解决方案 370

12.3.3 实现方法 370

12.4 管理集成测试中的应用程序上下文 374

12.4.1 问题描述 374

12.4.2 解决方案 374

12.4.3 实现方法 375

12.5 将测试夹具注入到集成测试中 380

12.5.1 问题描述 380

12.5.2 解决方案 381

12.5.3 实现方法 381

12.6 管理集成测试中的事务 384

12.6.1 问题描述 384

12.6.2 解决方案 384

12.6.3 实现方法 385

12.7 在集成测试中访问数据库 389

12.7.1 问题描述 389

12.7.2 解决方案 390

12.7.3 实现方法 390

12.8 利用Spring的通用测试注解 393

12.8.1 问题描述 393

12.8.2 解决方案 393

12.8.3 实现方法 394

12.9 小结 395

第三部分 高级主题 398

第13章 Spring Security框架 398

13.1 保护URL访问 398

13.1.1 问题描述 398

13.1.2 解决方案 398

13.1.3 实现方法 399

13.2 登录Web应用程序 407

13.2.1 问题描述 407

13.2.2 解决方案 407

13.2.3 实现方法 408

13.3 验证用户 411

13.3.1 问题描述 411

13.3.2 解决方案 411

13.3.3 实现方法 412

13.4 指定访问控制决策 419

13.4.1 问题描述 419

13.4.2 解决方案 419

13.4.3 实现方法 420

13.5 保护方法调用 422

13.5.1 问题描述 422

13.5.2 解决方案 422

13.5.3 实现方法 422

13.6 处理视图中的安全 425

13.6.1 问题描述 425

13.6.2 解决方案 425

13.6.3 实现方法 425

13.7 处理领域对象的安全 427

13.7.1 问题描述 427

13.7.2 解决方案 427

13.7.3 实现方法 427

13.8 小结 436

第14章 Spring Portlet MVC框架 437

14.1 用Spring Portlet MVC开发简单的Portlet 437

14.1.1 问题描述 437

14.1.2 解决方案 437

14.1.3 实现方法 438

14.2 将Portlet请求映射到处理程序 444

14.2.1 问题描述 444

14.2.2 解决方案 444

14.2.3 实现方法 444

14.3 用简单表单控制器处理Portlet表单 453

14.3.1 问题描述 453

14.3.2 解决方案 453

14.3.3 实现方法 453

14.4 使用注解来开发Portlet控制器 460

14.4.1 问题描述 460

14.4.2 解决方案 460

14.4.3 实现方法 460

14.5 小结 465

第15章 Spring Web Flow 466

15.1 用Spring Web Flow管理简单的UI流程 466

15.1.1 问题描述 466

15.1.2 解决方案 466

15.1.3 实现方法 467

15.2 用不同的流程类型进行Web流程建模 472

15.2.1 问题描述 472

15.2.2 解决方案 472

15.2.3 实现方法 473

15.3 保护Web流程 482

15.3.1 问题描述 482

15.3.2 解决方案 483

15.3.3 实现方法 483

15.4 在Web流程中持久化对象 484

15.4.1 问题描述 484

15.4.2 解决方案 485

15.4.3 实现方法 485

15.5 集成Spring Web Flow与JSF 490

15.5.1 问题描述 490

15.5.2 解决方案 490

15.5.3 实现方法 491

15.6 小结 496

第16章 Spring远程服务和Web服务 497

16.1 通过RMI暴露和调用服务 498

16.1.1 问题描述 498

16.1.2 解决方案 498

16.1.3 实现方法 499

16.2 通过HTTP公开和调用服务 502

16.2.1 问题描述 502

16.2.2 解决方案 502

16.2.3 实现方法 502

16.3 选择Web服务的开发方法 505

16.3.1 问题描述 505

16.3.2 解决方案 505

16.3.3 实现方法 505

16.4 利用XFire公开和调用Web服务 507

16.4.1 问题描述 507

16.4.2 解决方案 507

16.4.3 实现方法 507

16.5 定义Web服务契约 512

16.5.1 问题描述 512

16.5.2 解决方案 512

16.5.3 实现方法 513

16.6 利用Spring-WS实现Web服务 516

16.6.1 问题描述 516

16.6.2 解决方案 516

16.6.3 实现方法 517

16.7 利用Spring-WS调用Web服务 522

16.7.1 问题描述 522

16.7.2 解决方案 522

16.7.3 实现方法 522

16.8 利用XML封送技术开发Web服务 525

16.8.1 问题描述 525

16.8.2 解决方案 525

16.8.3 实现方法 525

16.9 利用注解创建服务端点 530

16.9.1 问题描述 530

16.9.2 解决方案 530

16.9.3 实现方法 530

16.10 小结 531

第17章 Spring对EJB和JMS的支持 532

17.1 用Spring创建EJB 2.x组件 532

17.1.1 问题描述 532

17.1.2 解决方案 532

17.1.3 实现方法 533

17.2 在Spring中访EJB 2.x组件 537

17.2.1 问题描述 537

17.2.2 解决方案 538

17.2.3 实现方法 538

17.3 在Spring中访问EJB 3.0组件 542

17.3.1 问题描述 542

17.3.2 解决方案 542

17.3.3 实现方法 542

17.4 用Spring发送和接收JMS消息 545

17.4.1 问题描述 545

17.4.2 解决方案 545

17.4.3 实现方法 546

17.5 在Spring中创建消息驱动的POJO 558

17.5.1 问题描述 558

17.5.2 解决方案 559

17.5.3 实现方法 559

17.6 小结 564

第18章 Spring对JMX、电子邮件和调度的支持 565

18.1 将Spring Bean导出为JMX MBean 565

18.1.1 问题描述 565

18.1.2 解决方案 565

18.1.3 实现方法 566

18.2 发布和监听JMX通知 575

18.2.1 问题描述 575

18.2.2 解决方案 575

18.2.3 实现方法 575

18.3 在Spring中访问远程JMX MBean 577

18.3.1 问题描述 577

18.3.2 解决方案 577

18.3.3 实现方法 577

18.4 用Spring的电子邮件支持来发送电子邮件 580

18.4.1 问题描述 580

18.4.2 解决方案 580

18.4.3 实现方法 580

18.5 用Spring的JDK Timer支持进行调度 587

18.5.1 问题描述 587

18.5.2 解决方案 587

18.5.3 实现方法 587

18.6 利用Spring的Quartz支持进行调度 589

18.6.1 问题描述 589

18.6.2 解决方案 589

18.6.3 实现方法 589

18.7 小结 593

第19章 Spring中的脚本编程 594

19.1 用脚本语言实现Bean 594

19.1.1 问题描述 594

19.1.2 解决方案 594

19.1.3 实现方法 594

19.2 将Spring Bean注入脚本 598

19.2.1 问题描述 598

19.2.2 解决方案 598

19.2.3 实现方法 598

19.3 从脚本中刷新Bean 600

19.3.1 问题描述 600

19.3.2 解决方案 600

19.3.3 实现方法 600

19.4 定义内联脚本 601

19.4.1 问题描述 601

19.4.2 解决方案 601

19.4.3 实现方法 601

19.5 小结 603