第一部分 掀起Spring的盖头来
         第1章 Spring框架的由来 2
         1.1 Spring之崛起 2
         1.2 Spring框架概述 3
         1.3 Spring大观园 5
         1.4 小结 8
         第二部分 Spring的IoC容器
         第2章 IoC的基本概念 10
         2.1 我们的理念是:让别人为你服务 10
         2.2 手语,呼喊,还是心有灵犀 13
         2.2.1 构造方法注入 13
         2.2.2 setter方法注入 13
         2.2.3 接口注入 14
         2.2.4 三种注入方式的比较 15
         2.3 IoC的附加值 15
         2.4 小结 17
         第3章 掌管大局的IoC Service Provider 18
         3.1 IoC Service Provider的职责 18
         3.2 运筹帷幄的秘密——IoC Service Provider如何管理对象间的依赖关系 19
         3.2.1 直接编码方式 19
         3.2.2 配置文件方式 20
         3.2.3 元数据方式 21
         3.3 小结 21
         第4章 Spring的IoC容器之BeanFactory 22
         4.1 拥有BeanFactory之后的生活 24
         4.2 BeanFactory的对象注册与依赖绑定方式 26
         4.2.1 直接编码方式 26
         4.2.2 外部配置文件方式 28
         4.2.3 注解方式 31
         4.3 BeanFactory的XML之旅 33
         4.3.1 beans和bean 33
         4.3.2 孤孤单单一个人 35
         4.3.3 Help Me, Help You 36
         4.3.4 继承?我也会! 50
         4.3.5 bean的scope 51
         4.3.6 工厂方法与FactoryBean 56
         4.3.7 偷梁换柱之术 61
         4.4 容器背后的秘密 66
         4.4.1 “战略性观望” 66
         4.4.2 插手“容器的启动” 67
         4.4.3 了解bean的一生 74
         4.5 小结 85
         第5章 Spring IoC容器ApplicationContext 86
         5.1 统一资源加载策略 86
         5.1.1 Spring中的Resource 87
         5.1.2 ResourceLoader,“更广义的URL” 88
         5.1.3 ApplicationContext与ResourceLoader 91
         5.2 国际化信息支持(I18n MessageSource) 97
         5.2.1 Java SE提供的国际化支持 97
         5.2.2 MessageSource与ApplicationContext 98
         5.3 容器内部事件发布 102
         5.3.1 自定义事件发布 102
         5.3.2 Spring的容器内事件发布类结构分析 105
         5.3.3 Spring容器内事件发布的应用 107
         5.4 多配置模块加载的简化 109
         5.5 小结 110
         第6章 Spring IoC容器之扩展篇 111
         6.1 Spring 2.5的基于注解的依赖注入 111
         6.1.1 注解版的自动绑定(@Autowired) 111
         6.1.2 @Autowired之外的选择——使用JSR250标注依赖注入关系 115
         6.1.3 将革命进行得更彻底一些(class-path-scanning功能介绍) 116
         6.2 Spring 3.0展望 119
         6.3 小结 120
         第三部分 Spring AOP框架
         第7章 一起来看AOP 122
         7.1 AOP的尴尬 124
         7.2 AOP走向现实 125
         7.2.1 静态AOP时代 125
         7.2.2 动态AOP时代 126
         7.3 Java平台上的AOP实现机制 126
         7.3.1 动态代理 126
         7.3.2 动态字节码增强 126
         7.3.3 Java代码生成 127
         7.3.4 自定义类加载器 127
         7.3.5 AOL扩展 127
         7.4 AOP国家的公民 128
         7.4.1 Joinpoint 128
         7.4.2 Pointcut 130
         7.4.3 Advice 131
         7.4.4 Aspect 133
         7.4.5 织入和织入器 133
         7.4.6 目标对象 133
         7.5 小结 134
         第8章 Spring AOP概述及其实现机制 135
         8.1 Spring AOP概述 135
         8.2 Spring AOP的实现机制 136
         8.2.1 设计模式之代理模式 136
         8.2.2 动态代理 139
         8.2.3 动态字节码生成 141
         8.3 小结 142
         第9章 Spring AOP一世 143
         9.1 Spring AOP中的Joinpoint 143
         9.2 Spring AOP中的Pointcut 144
         9.2.1 常见的Pointcut 146
         9.2.2 扩展Pointcut(Customize Pointcut) 151
         9.2.3 IoC容器中的Pointcut 152
         9.3 Spring AOP中的Advice 153
         9.3.1 per-class类型的Advice 153
         9.3.2 per-instance类型的Advice 159
         9.4 Spring AOP中的Aspect 163
         9.4.1 PointcutAdvisor家族 164
         9.4.2 IntroductionAdvisor分支 167
         9.4.3 Ordered的作用 168
         9.5 Spring AOP的织入 170
         9.5.1 如何与ProxyFactory打交道 170
         9.5.2 看清ProxyFactory的本质 175
         9.5.3 容器中的织入器——ProxyFactoryBean 179
         9.5.4 加快织入的自动化进程 185
         9.6 TargetSource 190
         9.6.1 可用的TargetSource实现类 191
         9.6.2 自定义TargetSource 195
         9.7 小结 197
         第10章 Spring AOP二世 198
         10.1 @AspectJ形式的Spring AOP 198
         10.1.1 @AspectJ形式AOP使用之先睹为快 199
         10.1.2 @AspectJ形式的Pointcut 201
         10.1.3 @AspectJ形式的Advice 211
         10.1.4 @AspectJ中的Aspect更多话题 220
         10.2 基于Schema的AOP 223
         10.2.1 基于Schema的AOP配置概览 223
         10.2.2 向基于Schema的AOP迁移 225
         10.2.3 @AspectJ到“基于Schema的AOP”迁移 227
         10.3 小结 235
         第11章 AOP应用案例 237
         11.1 异常处理 237
         11.1.1 Java异常处理 237
         11.1.2 Fault Barrier 238
         11.2 安全检查 239
         11.3 缓存 240
         11.4 小结 240
         第12章 Spring AOP之扩展篇 241
         12.1 有关公开当前调用的代理对象的探讨 241
         12.1.1 问题的现象 241
         12.1.2 原因的分析 242
         12.1.3 解决方案 243
         12.2 小结 245
         第四部分 使用Spring访问数据
         第13章 统一的数据访问异常层次体系 249
         13.1 DAO模式的背景 249
         13.2 梦想照进现实 251
         13.3 发现问题,解决问题 252
         13.4 不重新发明轮子 254
         13.5 小结 257
         第14章 JDBC API的最佳实践 258
         14.1 基于Template的JDBC使用方式 258
         14.1.1 JDBC的尴尬 258
         14.1.2 JdbcTemplate的诞生 261
         14.1.3 JdbcTemplate和它的兄弟们 274
         14.1.4 Spring中的DataSource 296
         14.1.5 JdbcDaoSupport 301
         14.2 基于操作对象的JDBC使用方式 302
         14.2.1 基于操作对象的查询 303
         14.2.2 基于操作对象的更新 310
         14.2.3 基于操作对象的存储过程调用 313
         14.3 小结 316
         第15章 Spring对各种ORM的集成 317
         15.1 Spring对Hibernate的集成 318
         15.1.1 旧日“冬眠”时光 318
         15.1.2 “春天”里的“冬眠” 321
         15.2 Spring对iBATIS的集成 329
         15.2.1 iBATIS实践之“前生”篇 329
         15.2.2 iBATIS实践之“今世”篇 331
         15.3 Spring中对其他ORM方案的集成概述 337
         15.3.1 Spring对JDO的集成 337
         15.3.2 Spring对TopLink的集成 340
         15.3.3 Spring对JPA的集成 341
         15.4 小结 344
         第16章 Spring数据访问之扩展篇 345
         16.1 活用模板方法模式及Callback 345
         16.1.1 FTPClientTemplate 345
         16.1.2 HttpClientTemplate 349
         16.2 数据访问中的多数据源 350
         16.2.1 “主权独立”的多数据源 350
         16.2.2 “合纵连横”的多数据源 352
         16.2.3 结束语 354
         16.3 Spring 3.0展望 356
         16.4 小结 356
         第五部分 事务管理
         第17章 有关事务的楔子 358
         17.1 认识事务本身 358
         17.2 初识事务家族成员 360
         17.3 小结 362
         第18章 群雄逐鹿下的Java事务管理 363
         18.1 Java平台的局部事务支持 363
         18.2 Java平台的分布式事务支持 365
         18.2.1 基于JTA的分布式事务管理 366
         18.2.2 基于JCA的分布式事务管理 367
         18.3 继续前行之前的反思 367
         18.4 小结 369
         第19章 Spring事务王国的架构 370
         19.1 统一中原的过程 371
         19.2 和平年代 376
         19.2.1 TransactionDefinition 376
         19.2.2 TransactionStatus 382
         19.2.3 PlatformTransac-tionManager 382
         19.3 小结 392
         第20章 使用Spring进行事务管理 393
         20.1 编程式事务管理 393
         20.1.1 直接使用PlatformTran-sactionManager进行编程式事务管理 393
         20.1.2 使用TransactionTemp-late进行编程式事务管理 394
         20.1.3 编程创建基于Savepoint的嵌套事务 396
         20.2 声明式事务管理 397
         20.2.1 引子 397
         20.2.2 XML元数据驱动的声明式事务 399
         20.2.3 注解元数据驱动的声明式事务 410
         20.3 小结 413
         第21章 Spring事务管理之扩展篇 414
         21.1 理解并活用ThreadLocal 414
         21.1.1 理解ThreadLocal的存在背景 414
         21.1.2 理解ThreadLocal的实现 415
         21.1.3 ThreadLocal的应用场景 416
         21.1.4 使用ThreadLocal管理多数据源切换的条件 417
         21.2 谈Strategy模式在开发过程中的应用 420
         21.3 Spring与JTA背后的奥秘 423
         21.4 小结 427
         第六部分 Spring的Web MVC框架
         第22章 迈向Spring MVC的旅程 430
         22.1 Servlet独行天下的时代 430
         22.2 繁盛一时的JSP时代 433
         22.3 Servlet与JSP的联盟 436
         22.4 数英雄人物,还看今朝 438
         22.5 小结 440
         第23章 Spring MVC初体验 441
         23.1 鸟瞰Spring MVC 442
         23.2 实践出真知 446
         23.2.1 Spring MVC应用的物理结构 447
         23.2.2 按部就班地开始工作 451
         23.3 小结 459
         第24章 近距离接触Spring MVC主要角色 460
         24.1 忙碌的协调人HandlerMapping 460
         24.1.1 可用的HandlerMapping 461
         24.1.2 HandlerMapping执行序列(Chain Of HandlerMapping) 463
         24.2 我们的亲密伙伴Controller 464
         24.2.1 AbstractController 465
         24.2.2 MultiActionController 468
         24.2.3 SimpleFormController 476
         24.2.4 AbstractWizard-FormController 496
         24.2.5 其他可用的Controller实现 503
         24.3 ModelAndView 505
         24.3.1 ModelAndView中的视图信息 505
         24.3.2 ModelAndView中的模型数据 506
         24.4 视图定位器ViewResolver 506
         24.4.1 可用的ViewResolver实现类 507
         24.4.2 ViewResolver查找序列(Chain Of ViewResolver) 511
         24.5 各司其职的View 511
         24.5.1 View实现原理回顾 512
         24.5.2 可用的View实现类 515
         24.5.3 自定义View实现 521
         24.6 小结 523
         第25章 认识更多Spring MVC家族成员 524
         25.1 文件上传与MultipartResolver 525
         25.1.1 使用MultipartResolver进行文件上传的简单分析 526
         25.1.2 文件上传实践 527
         25.2 Handler与HandlerAdaptor 530
         25.2.1 问题的起源 530
         25.2.2 深入了解Handler 531
         25.2.3 近看HandlerAdaptor的奥秘 533
         25.2.4 告知Handler与Handler-Adaptor的存在 535
         25.3 框架内处理流程拦截与Handler-Interceptor 536
         25.3.1 可用的Handler-Interceptor实现 537
         25.3.2 自定义实现Handler-Interceptor 538
         25.3.3 HandlerInterceptor寻根 540
         25.3.4 HandlerInterceptor之外的选择 541
         25.4 框架内的异常处理与Handler-ExceptionResolver 544
         25.5 国际化视图与LocalResolver 548
         25.5.1 可用的LocaleResolver 549
         25.5.2 LocaleResolver的足迹 550
         25.5.3 Locale的变更与LocaleChangeHandler 551
         25.6 主题(Theme)与ThemeResolver 552
         25.6.1 提供主题资源的ThemeSource 552
         25.6.2 管理主题的ThemeResolver 554
         25.6.3 切换主题的ThemeChange-Interceptor 555
         25.7 小结 556
         第26章 Spring MVC中基于注解的Controller 557
         26.1 初识基于注解的Controller 557
         26.2 基于注解的Controller原型分析 558
         26.2.1 自定义用于基于注解的Contro-ller的HandlerMapping 558
         26.2.2 自定义用于基于注解的Contro-ller的HandlerAdaptor 560
         26.3 近看基于注解的Controller 563
         26.3.1 声明基于注解的Controller 563
         26.3.2 请求参数到方法参数的绑定 569
         26.3.3 使用@ModelAttribute访问模型数据 572
         26.3.4 通过@SessionAttribute管理Session数据 574
         26.4 小结 576
         第27章 Spring MVC之扩展篇 577
         27.1 Spring MVC也Convention Over Configuration 577
         27.1.1 Convention Over Configuration简介 577
         27.1.2 Spring MVC中的Convention Over Configuration 578
         27.2 Spring 3.0展望 581
         27.3 小结 582
         第七部分 Spring框架对J2EE服务的集成和支持
         第28章 Spring框架内的JNDI支持 584
         28.1 JNDI简单回顾 584
         28.2 Spring框架内JNDI访问的基石——JndiTemplate 585
         28.3 JNDI对象的依赖注入——JndiObjectFactoryBean 587
         28.4 小结 588
         第29章 Spring框架对JMS的集成 589
         29.1 说说JMS的身世 589
         29.2 使用JMS API进行应用开发的传统套路 590
         29.3 Spring改进后的JMS实战格斗术 592
         29.3.1 消息发送和同步接收 592
         29.3.2 异步消息接收 601
         29.3.3 JMS相关异常处理 607
         29.3.4 框架内的事务管理支持 608
         29.4 小结 609
         第30章 使用Spring发送E-mail 610
         30.1 思甜前,先忆苦 610
         30.2 Spring的E-mail抽象层分析 612
         30.2.1 直接创建邮件消息并发送 614
         30.2.2 使用MimeMessage-Preparator发送邮件 615
         30.3 Spring的E-mail支持在实际开发中的应用 616
         30.4 小结 622
         第31章 Spring中的任务调度和线程池支持 623
         31.1 Spring与Quartz 623
         31.1.1 初识Quartz 623
         31.1.2 融入Spring大家庭的Quartz 626
         31.2 Spring对JDK Timer的集成 631
         31.2.1 JDK Timer小记 631
         31.2.2 Spring集成后的JDK Timer 632
         31.3 Executor的孪生兄弟TaskExecutor 634
         31.3.1 可用的TaskExecutor 635
         31.3.2 TaskExecutor使用实例 637
         31.4 小结 639
         第32章 Spring框架对J2EE服务的集成之扩展篇 640
         32.1 MailMonitor的延伸 640
         32.2 Spring 3.0展望 642
         32.3 小结 642
         第33章 Spring远程方案 643
         33.1 从“对面交谈”到“千里传声” 643
         33.2 Spring Remoting架构分析 645
         33.2.1 Spring Remoting之远程访问异常体系 645
         33.2.2 统一风格的远程服务公开与访问方式 646
         33.3 Spring Remoting提供的远程服务支持 648
         33.3.1 基于RMI的Remoting方案 648
         33.3.2 基于HTTP的轻量级Remoting方案 651
         33.3.3 基于Web服务的远程方案 655
         33.3.4 基于JMS的远程方案 658
         33.4 扩展Spring Remoting 660
         33.5 Spring Remoting之扩展篇 663
         33.5.1 拉开JMX演出的序幕 663
         33.5.2 Spring 3.0展望 664
         参考文献 665
      · · · · · ·     (
收起)