第1章Spring简介 1
1.1实例化Spring IoC容器 1
1.1.1问题 1
1.1.2解决方案 1
1.1.3工作原理 3
1.2配置Spring IoC容器中的Bean 4
1.2.1问题 4
1.2.2解决方案 4
1.2.3工作原理 4
1.3调用构造程序创建Bean 14
1.3.1问题 14
1.3.2解决方案 14
1.3.3工作原理 14
1.4解决构造程序歧义 17
1.4.1问题 17
1.4.2解决方案 17
1.4.3工作原理 17
1.5指定 Bean引用 20
1.5.1问题 20
1.5.2解决方案 20
1.5.3工作原理 20
1.6为集合元素指定数据类型 24
1.6.1问题 24
1.6.2解决方案 24
1.6.3工作原理 24
1.7使用Spring的FactoryBean 创建Bean 27
1.7.1问题 27
1.7.2解决方案 27
1.7.3工作原理 27
1.8使用工厂Bean和Utility Schema 定义集合 29
1.8.1问题 29
1.8.2解决方案 29
1.8.3工作原理 29
1.9用依赖检查属性 31
1.9.1问题 31
1.9.2解决方案 32
1.9.3工作原理 32
1.10用@Required注解检查属性 34
1.10.1问题 34
1.10.2解决方案 34
1.10.3工作原理 34
1.11用XML配置自动装配Bean 36
1.11.1问题 36
1.11.2解决方案 36
1.11.3工作原理 37
1.12用@Autowired和@Resource 自动装配Bean 41
1.12.1问题 41
1.12.2解决方案 41
1.12.3工作原理 41
1.13继承Bean配置 47
1.13.1问题 47
1.13.2解决方案 47
1.13.3工作原理 48
1.14从Classpath中扫描组件 50
1.14.1问题 50
1.14.2解决方案 51
1.14.3工作原理 51
1.15 小结 56
第2章 高级Spring IoC容器 57
2.1调用静态工厂方法创建Bean 57
2.1.1问题 57
2.1.2解决方案 57
2.1.3工作原理 57
2.2调用一个实例工厂方法创建 Bean 58
2.2.1问题 58
2.2.2解决方案 59
2.2.3工作原理 59
2.3从静态字段中声明Bean 60
2.3.1问题 60
2.3.2解决方案 60
2.3.3工作原理 61
2.4从对象属性中声明Bean 62
2.4.1问题 62
2.4.2解决方案 62
2.4.3工作原理 62
2.5使用Spring表达式语言 64
2.5.1问题 64
2.5.2解决方案 64
2.5.3工作原理 65
2.6设置Bean作用域 69
2.6.1问题 69
2.6.2解决方案 69
2.6.3工作原理 70
2.7自定义Bean初始化和析构 72
2.7.1问题 72
2.7.2解决方案 72
2.7.3工作原理 72
2.8用Java Config简化XML配置 77
2.8.1问题 77
2.8.2解决方案 77
2.8.3工作原理 77
2.9使Bean感知容器 81
2.9.1问题 81
2.9.2解决方案 81
2.9.3工作原理 82
2.10加载外部资源 82
2.10.1问题 82
2.10.2解决方案 83
2.10.3工作原理 83
2.11创建Bean后处理器 85
2.11.1问题 85
2.11.2解决方案 85
2.11.3工作原理 86
2.12外部化Bean配置 89
2.12.1问题 89
2.12.2解决方案 89
2.12.3工作原理 90
2.13解析文本消息 91
2.13.1问题 91
2.13.2解决方案 91
2.13.3工作原理 91
2.14使用应用事件进行通信 93
2.14.1问题 93
2.14.2解决方案 93
2.14.3工作原理 94
2.15在Spring中注册属性编辑器 96
2.15.1问题 96
2.15.2解决方案 96
2.15.3工作原理 97
2.16创建自定义属性编辑器 99
2.16.1问题 99
2.16.2解决方案 100
2.16.3工作原理 100
2.17使用TaskExecutor实现并发性 101
2.17.1问题 101
2.17.2解决方案 101
2.17.3工作原理 102
2.18小结 110
第3章Spring AOP和AspectJ支持 112
3.1启用Spring的AspectJ注解支持 113
3.1.1问题 113
3.1.2解决方案 113
3.1.3工作原理 113
3.2用AspectJ注解声明aspect 115
3.2.1问题 115
3.2.2解决方案 115
3.2.3工作原理 116
3.3访问连接点信息 121
3.3.1问题 121
3.3.2解决方案 122
3.3.3工作原理 122
3.4指定aspect优先级 123
3.4.1问题 123
3.4.2解决方案 123
3.4.3工作原理 123
3.5重用切入点定义 125
3.5.1问题 125
3.5.2解决方案 125
3.5.3工作原理 125
3.6编写AspectJ切入点表达式 127
3.6.1问题 127
3.6.2解决方案 127
3.6.3工作原理 128
3.7在你的Bean中引入行为 132
3.7.1问题 132
3.7.2解决方案 132
3.7.3工作原理 132
3.8为你的Bean引入状态 135
3.8.1问题 135
3.8.2解决方案 135
3.8.3工作原理 135
3.9用基于XML的配置声明aspect 137
3.9.1问题 137
3.9.2解决方案 137
3.9.3工作原理 137
3.10 Spring中的AspectJ加载时织入aspect 140
3.10.1问题 140
3.10.2解决方案 141
3.10.3工作原理 141
3.11在Spring中配置AspectJaspect 146
3.11.1问题 146
3.11.2解决方案 146
3.11.3工作原理 146
3.12将Spring Bean注入领域对象 147
3.12.1问题 147
3.12.2解决方案 147
3.12.3工作原理 148
3.13小结 151
第4章Spring中的脚本 152
4.1用脚本语言实现Bean 152
4.1.1问题 152
4.1.2解决方案 153
4.1.3工作原理 153
4.2将Spring Bean注入脚本中 157
4.2.1问题 157
4.2.2解决方案 157
4.2.3工作原理 157
4.3从脚本中刷新Bean 160
4.3.1问题 160
4.3.2解决方案 160
4.3.3工作原理 160
4.4定义内联脚本源码 161
4.4.1问题 161
4.4.2解决方案 161
4.4.3工作原理 161
4.5小结 163
第5章Spring Security 164
5.1加强URL访问安全 165
5.1.1问题 165
5.1.2解决方案 165
5.1.3工作原理 166
5.2登录到Web应用 175
5.2.1问题 175
5.2.2解决方案 175
5.2.3工作原理 175
5.3验证用户 179
5.3.1问题 179
5.3.2解决方案 180
5.3.3工作原理 180
5.4做出访问控制决策 190
5.4.1问题 190
5.4.2解决方案 190
5.4.3工作原理 191
5.5加强方法调用的安全 193
5.5.1问题 193
5.5.2解决方案 193
5.5.3工作原理 194
5.6处理视图中的安全性 196
5.6.1问题 196
5.6.2解决方案 196
5.6.3工作原理 196
5.7处理领域对象安全性 198
5.7.1问题 198
5.7.2解决方案 198
5.7.3工作原理 199
5.8小结 208
第6章将Spring与其他Web框架集成 209
6.1在一般Web应用中访问Spring 209
6.1.1问题 209
6.1.2解决方案 210
6.1.3工作原理 210
6.2在你的Servlet和过滤器中使用Spring 214
6.2.1问题 214
6.2.2解决方案 215
6.2.3工作原理 215
6.3将Spring与Struts 1.x集成 220
6.3.1问题 220
6.3.2解决方案 220
6.3.3工作原理 220
6.4将Spring与JSF集成 226
6.4.1问题 226
6.4.2解决方案 226
6.4.3工作原理 227
6.5将Spring与DWR集成 232
6.5.1问题 232
6.5.2解决方案 232
6.5.3工作原理 233
6.6小结 236
第7章Spring Web Flow 238
7.1用Spring Web Flow管理简单的UI流程 238
7.1.1问题 238
7.1.2解决方案 239
7.1.3工作原理 239
7.2用不同状态类型建立Web流程模型 246
7.2.1问题 246
7.2.2解决方案 246
7.2.3工作原理 246
7.3加强Web流程安全 257
7.3.1问题 257
7.3.2解决方案 258
7.3.3工作原理 258
7.4持续存储Web流程中的对象 260
7.4.1问题 260
7.4.2解决方案 260
7.4.3工作原理 260
7.5将Spring Web Flow与JSF集成 267
7.5.1问题 267
7.5.2解决方案 267
7.5.3工作原理 267
7.6使用RichFaces与Spring WebFlow协作 275
7.6.1问题 275
7.6.2解决方案 275
7.6.3方法 275
7.7小结 279
第8章Spr ing@ M VC 280
8.1用Spring MVC开发简单的Web应用 280
8.1.1问题 280
8.1.2解决方案 281
8.1.3工作原理 283
8.2用@RequestMapping映射请求 293
8.2.1问题 293
8.2.2解决方案 294
8.2.3工作原理 294
8.3用处理程序拦截器拦截请求 297
8.3.1问题 297
8.3.2解决方案 298
8.3.3工作原理 298
8.4解析用户区域 302
8.4.1问题 302
8.4.2解决方案 302
8.4.3工作原理 302
8.5外部化区分区域的文本信息 304
8.5.1问题 304
8.5.2解决方案 304
8.5.3工作原理 305
8.6按照名称解析视图 306
8.6.1问题 306
8.6.2解决方案 306
8.6.3工作原理 306
8.7视图和内容协商 309
8.7.1问题 309
8.7.2解决方案 309
8.7.3工作原理 309
8.8映射异常视图 312
8.8.1问题 312
8.8.2解决方案 312
8.8.3工作原理 312
8.9用@Value在控制器中赋值 314
8.9.1问题 314
8.9.2解决方案 314
8.9.3工作原理 314
8.10用控制器处理表单 316
8.10.1问题 316
8.10.2解决方案 316
8.10.3工作原理 317
8.11用向导表单控制器处理多页表单 331
8.11.1问题 331
8.11.2解决方案 331
8.11.3工作原理 332
8.12使用注解(JSR-303)的Bean校验 341
8.12.1问题 341
8.12.2解决方案 342
8.12.3工作原理 342
8.13创建Excel和PDF视图 344
8.13.1问题 344
8.13.2解决方案 345
8.13.3工作原理 345
8.14小结 351
第9章Spring REST 352
9.1用Spring发布一个REST服务 352
9.1.1问题 352
9.1.2解决方案 353
9.1.3工作原理 353
9.2用Spring访问REST服务 358
9.2.1问题 358
9.2.2解决方案 358
9.2.3工作原理 358
9.3发布RSS和Atom信息源 362
9.3.1问题 362
9.3.2解决方案 363
9.3.3工作原理 363
9.4用REST服务发布JSON 372
9.4.1问题 372
9.4.2解决方案 372
9.4.3工作原理 372
9.5访问具有复杂XML响应的REST服务 375
9.5.1问题 375
9.5.2解决方案 375
9.5.3工作原理 375
9.6小结 385
第10章Spring和Flex 386
10.1 Flex入门 388
10.1.1问题 388
10.1.2解决方案 388
10.1.3工作原理 388
10.2离开沙箱 393
10.2.1问题 393
10.2.2解决方案 394
10.2.3工作原理 394
10.3为应用添加Spring BlazeDS支持 406
10.3.1问题 406
10.3.2解决方案 406
10.3.3工作原理 406
10.4通过 BlazeDS/Spring暴露服务 411
10.4.1问题 411
10.4.2解决方案 411
10.4.3工作原理 411
10.5使用服务器端对象 418
10.5.1问题 418
10.5.2解决方案 418
10.5.3工作原理 418
10.6使用BlazeDS和Spring消费面向消息的服务 421
10.6.1问题 421
10.6.2解决方案 422
10.6.3工作原理 422
10.7将依赖注入带给你的ActionScript客户 434
10.7.1问题 434
10.7.2解决方案 434
10.7.3工作原理 435
10.8小结 439
第11章Grails 441
11.1获取和安装Grails 441
11.1.1问题 441
11.1.2解决方案 442
11.1.3工作原理 442
11.2创建Grails应用 443
11.2.1问题 443
11.2.2解决方案 443
11.2.3工作原理 443
11.3 Grails插件 447
11.3.1问题 447
11.3.2解决方案 448
11.3.3工作原理 448
11.4在Grails环境中开发、生产和测试 449
11.4.1问题 449
11.4.2解决方案 449
11.4.3工作原理 450
11.5创建应用的领域类 452
11.5.1问题 452
11.5.2解决方案 452
11.5.3工作原理 452
11.6为一个应用的领域类生成CRUD控制器和视图 454
11.6.1问题 454
11.6.2解决方案 454
11.6.3工作原理 455
11.7国际化(I18n)信息属性 458
11.7.1问题 458
11.7.2解决方案 458
11.7.3工作原理 458
11.8改变永久性存储系统 461
11.8.1问题 461
11.8.2解决方案 461
11.4.3工作原理 461
11.9日志 464
11.9.1问题 464
11.9.2解决方案 464
11.9.3工作原理 464
11.10运行单元和集成测试 466
11.10.1问题 466
11.10.2解决方案 467
11.10.3工作原理 467
11.11使用自定义布局和模板 472
11.11.1问题 472
11.11.2解决方案 472
11.11.3工作原理 472
11.12使用GORM查询 475
11.12.1问题 475
11.12.2解决方案 475
11.12.3工作原理 475
11.13创建自定义标记 477
11.13.1问题 477
11.13.2解决方案 477
11.13.3工作原理 478
11.14小结 479
第12章Spring Roo 481
12.1设置Spring Roo开发环境 483
12.1.1问题 483
12.1.2解决方案 483
12.1.3工作原理 483
12.2创建第一个Spring Roo项目 486
12.2.1问题 486
12.2.2解决方案 486
12.2.3工作原理 486
12.3把现有项目导入SpringSourceTool Suite 491
12.3.1问题 491
12.3.2解决方案 492
12.3.3工作原理 492
12.4更快地构建更好的应用程序 493
12.4.1问题 493
12.4.2解决方案 494
12.4.3工作原理 494
12.5从项目中删除Spring Roo 500
12.5.1问题 500
12.5.2解决方案 500
12.5.3工作原理 501
12.6小结 502
第13章Spring测试 503
13.1用JUnit and TestNG创建测试 504
13.1.1问题 504
13.1.2解决方案 504
13.1.3工作原理 504
13.2创建单元测试和集成测试 509
13.2.1问题 509
13.2.2解决方案 509
13.2.3工作原理 510
13.3 Spring MVC控制器的单元测试 518
13.3.1问题 518
13.3.2解决方案 518
13.3.3工作原理 518
13.4管理集成测试中的应用上下文 520
13.4.1问题 520
13.4.2解决方案 520
13.4.3工作原理 521
13.5向集成测试注入测试夹具 526
13.5.1问题 526
13.5.2解决方案 526
13.5.3工作原理 527
13.6管理集成测试中的事务 530
13.6.1问题 530
13.6.2解决方案 530
13.6.3工作原理 531
13.7在集成测试中访问数据库 536
13.7.1问题 536
13.7.2解决方案 536
13.7.3工作原理 537
13.8使用Spring的常用测试注解 540
13.8.1问题 540
13.8.2解决方案 540
13.8.3工作原理 541
13.9小结 542
第14章Spring Portlet MVC框架 544
14.1用Spring Portlet MVC开发一个简单的Portlet 544
14.1.1问题 544
14.1.2解决方案 545
14.1.3工作原理 546
14.2将Portlet请求映射到处理程序 553
14.2.1问题 553
14.2.2解决方案 553
14.2.3工作原理 554
14.3用简单的表单控制器处理portlet表单 561
14.3.1问题 561
14.3.2解决方案 561
14.3.3工作原理 561
14.4小结 569
第15章 数据访问 570
15.1 Direct JDBC的问题 571
15.1.1建立应用数据库 571
15.1.2理解数据访问对象设计模式 573
15.1.3用JDBC实现DAO 573
15.1.4在Spring中配置数据源 575
15.1.5运行DAO 577
15.1.6更进一步 577
15.2使用JDBC模板更新数据库 578
15.2.1问题 578
15.2.2解决方案 578
15.2.3工作原理 578
15.3使用JDBC模板查询数据库 583
15.3.1问题 583
15.3.2解决方案 583
15.3.3工作原理 583
15.4简化JDBC模板创建 588
15.4.1问题 588
15.4.2解决方案 588
15.4.3工作原理 589
15.5在Java 1.5中使用简单的JDBC模板 591
15.5.1问题 591
15.5.2解决方案 591
15.5.3工作原理 591
15.6在JDBC模板中使用命名参数 595
15.6.1问题 595
15.6.2解决方案 595
15.6.3工作原理 595
15.7在Spring JDBC框架中处理异常 597
15.7.1问题 597
15.7.2解决方案 597
15.7.3工作原理 598
15.8直接使用ORM框架的问题 602
15.8.1问题 602
15.8.2解决方案 603
15.8.3工作原理 603
15.8.4使用Hibernate API, 用Hibernate XML映射持续化对象 604
15.8.5使用Hibernate API,以JPA 注解持续化对象 608
15.8.6使用JPA,以Hibernate为引擎持续化对象 610
15.9在Spring中配置ORM资源工厂 613
15.9.1问题 613
15.9.2解决方案 614
15.9.3工作原理 614
15.10用Spring ORM模板持续化对象 620
15.10.1问题 620
15.10.2解决方案 620
15.10.3工作原理 621
15.11用Hibernate的上下文会话持续化对象 626
15.11.1问题 626
15.11.2解决方案 626
15.11.3工作原理 626
15.12用JPA的上下文注入持续化对象 629
15.12.1问题 629
15.12.2解决方案 629
15.12.3工作原理 630
15.13小结 632
第16章Spring中的事务管理 634
16.1事务管理的问题 635
16.2选择一个事务管理器实现 641
16.2.1问题 641
16.2.2解决方案 641
16.2.3工作原理 641
16.3用事务管理器API编程管理事务 642
16.3.1问题 642
16.3.2解决方案 643
16.3.3工作原理 643
16.4用事务模板编程管理事务 644
16.4.1问题 644
16.4.2解决方案 645
16.4.3工作原理 645
16.5用事务通知声明式地管理事务 647
16.5.1问题 647
16.5.2解决方案 648
16.5.3工作原理 648
16.6用@Transactional注解声明式地管理事务 650
16.6.1方法 650
16.6.2解决方案 650
16.6.3工作原理 650
16.7设置事务传播属性 652
16.7.1问题 652
16.7.2解决方案 652
16.7.3工作原理 653
16.8设置隔离事务属性 657
16.8.1问题 657
16.8.2解决方案 657
16.8.3工作原理 658
16.9设置Rollback事务属性 664
16.9.1问题 664
16.9.2解决方案 664
16.9.3工作原理 664
16.10设置超时和只读事务属性 666
16.10.1问题 666
16.10.2解决方案 666
16.10.3工作原理 666
16.11用加载时织入管理事务 667
16.11.1问题 667
16.11.2解决方案 667
16.11.3工作原理 667
16.12小结 671
第17章EJB、 Spring Remoting和Web服务 672
17.1通过RMI暴露和调用服务 672
17.1.1问题 672
17.1.2解决方案 673
17.1.3工作原理 673
17.2用Spring创建EJB 2.x组件 676
17.2.1问题 676
17.2.2解决方案 677
17.2.3工作原理 677
17.3在Spring中访问遗留的EJB 2.x组件 683
17.3.1问题 683
17.3.2解决方案 683
17.3.3工作原理 684
17.4在Spring中创建EJB 3.0组件 687
17.4.1问题 687
17.4.2解决方案 687
17.4.3工作原理 688
17.5在Spring中访问EJB 3.0组件 689
17.5.1问题 689
17.5.2解决方案 690
17.5.3工作原理 690
17.6通过HTTP暴露和调用服务 692
17.6.1问题 692
17.6.2解决方案 692
17.6.3工作原理 692
17.7选择SOAP Web服务开发方法 696
17.7.1问题 696
17.7.2解决方案 696
17.7.3工作原理 696
17.8使用JAX-WS暴露和调用Contract-Last SOAP Web服务 698
17.8.1问题 698
17.8.2解决方案 698
17.8.3工作原理 698
17.9定义Web服务契约 705
17.9.1问题 705
17.9.2解决方案 705
17.9.3工作原理 705
17.10使用Spring-WS实现Web服务 709
17.10.1问题 709
17.10.2解决方案 709
17.10.3工作原理 710
17.11使用Spring-WS调用Web服务 715
17.11.1问题 715
17.11.2解决方案 715
17.11.3工作原理 715
17.12用XML编组开发Web服务 719
17.12.1问题 719
17.12.2解决方案 719
17.12.3工作原理 720
17.13用注解创建服务端点 724
17.13.1问题 724
17.13.2解决方案 725
17.13.3工作原理 725
17.14小结 726
第18章 企业中的Spring 727
18.1将Spring Bean输出为JMX MBean 727
18.1.1问题 727
18.1.2解决方案 728
18.1.3工作原理 728
18.2发布和监听JMX通知 740
18.2.1问题 740
18.2.2解决方案 740
18.2.3工作原理 740
18.3在Spring中访问远程JMX MBean 742
18.3.1问题 742
18.3.2解决方案 742
18.3.3工作原理 742
18.4用Spring电子邮件支持发送邮件 745
18.4.1问题 745
18.4.2解决方案 745
18.4.3工作原理 746
18.5用Spring的Quartz支持进行调度 753
18.5.1问题 753
18.5.2解决方案 753
18.5.3工作原理 753
18.6用Spring 3.0的调度命名空间进行调度 758
18.6.1问题 758
18.6.2解决方案 758
18.6.3工作原理 758
18.7小结 762
第19章 消息 763
19.1用Spring发送和接收JMS消息 764
19.1.1问题 764
19.1.2解决方案 765
19.1.3工作原理 765
19.2转换JMS消息 776
19.2.1问题 776
19.2.2解决方案 776
19.2.3方法 776
19.3管理JMS事务 778
19.3.1问题 778
19.3.2方法 779
19.3.3解决方案 779
19.4在Spring中创建消息驱动POJO 780
19.4.1问题 780
19.4.2解决方案 780
19.4.3工作原理 781
19.5建立连接 786
19.5.1问题 786
19.5.2解决方案 787
19.5.3工作原理 787
19.6小结 788
第20章Spring Integration 789
20.1用EAI集成一个系统到另一个系统 790
20.1.1问题 790
20.1.2解决方案 790
20.1.3工作原理 790
20.2使用JMS集成两个系统 793
20.2.1问题 793
20.2.2解决方案 793
20.2.3工作原理 793
20.3查询Spring Integration消息得到上下文信息 797
20.3.1问题 797
20.3.2解决方案 797
20.3.3工作原理 797
20.4用一个文件系统集成两个系统 800
20.4.1问题 800
20.4.2解决方案 800
20.4.3工作原理 800
20.5将消息从一种类型转换为另一种类型 802
20.5.1问题 802
20.5.2解决方案 802
20.5.3工作原理 803
20.6使用Spring Integration进行错误处理 806
20.6.1问题 806
20.6.2解决方案 806
20.6.3工作原理 806
20.7集成控制分支:分解器和聚合器 809
20.7.1问题 809
20.7.2解决方案 809
20.7.3工作原理 809
20.8用路由器实现条件路由 813
20.8.1问题 813
20.8.2解决方案 813
20.8.3工作原理 813
20.9使外部系统适应总线 814
20.9.1问题 814
20.9.2解决方案 814
20.9.3工作原理 814
20.10用Spring Batch产生事件 825
20.10.1问题 825
20.10.2解决方案 825
20.10.3工作原理 825
20.11使用网关 826
20.11.1问题 826
20.11.2解决方案 826
20.11.3工作原理 827
20.12小结 832
第21章SpringBatch 834
21.1建立Spring Batch的基础架构 836
21.1.1问题 836
21.1.2解决方案 836
21.1.3工作原理 837
21.2读取和写入(无计算) 839
21.2.1问题 839
21.2.2解决方案 839
21.2.3工作原理 840
21.3编写自定义ItemWriter和ItemReader 844
21.3.1问题 844
21.3.2解决方案 844
21.3.3工作原理 844
21.4在写入前处理输入 847
21.4.1问题 847
21.4.2解决方案 847
21.4.3工作原理 847
21.5通过事务改善生活 850
21.5.1问题 850
21.5.2解决方案 850
21.5.3工作原理 850
21.6重试 852
21.6.1问题 852
21.6.2解决方案 852
21.6.3工作原理 852
21.7控制步骤异常 855
21.7.1问题 855
21.7.2解决方案 856
21.7.3工作原理 856
21.8启动一个作业 860
21.8.1问题 860
21.8.2解决方案 860
21.8.3工作原理 860
21.9参数化一个作业 864
21.9.1问题 864
21.9.2解决方案 864
21.9.3工作原理 864
21.10小结 866
第22章 网格上的Spring 867
22.1使用Terracotta聚合对象状态 869
22.1.1问题 869
22.1.2解决方案 869
22.1.3工作原理 869
22.2将执行分布到网格上 879
22.2.1问题 879
22.2.2解决方案 879
22.2.3方法 879
22.3方法的负载平衡 880
22.3.1问题 880
22.3.2解决方案 881
22.3.3方法 881
22.4并行处理 884
22.4.1问题 884
22.4.2解决方案 885
22.4.3方法 885
22.5在GridGain上部署 887
22.5.1问题 887
22.5.2解决方案 887
22.5.3工作原理 887
22.6小结 891
第23章jBPM和Spring软件过程 894
23.1理解工作流模型 896
23.1.1问题 896
23.1.2解决方案 897
23.1.3工作原理 897
23.2安装jBPM 898
23.2.1问题 898
23.2.2解决方案 898
23.2.3工作原理 898
23.3将jBPM4与Spring整合 900
23.3.1问题 900
23.3.2解决方案 900
23.3.3工作原理 900
23.4用Spring构建一个服务 906
23.4.1问题 906
23.4.2解决方案 906
23.4.3工作原理 907
23.5构建业务过程 910
23.5.1问题 910
23.5.2解决方案 910
23.5.3工作原理 910
23.6小结 913
第24章OSGi和Spring 914
24.1 OSGi入门 915
24.1.1问题 915
24.1.2解决方案 915
24.1.3工作原理 916
24.2开始使用Spring DynamicModules 922
24.2.1问题 922
24.2.2解决方案 922
24.2.3工作原理 922
24.3用Spring Dynamic Modules输出服务 926
24.3.1问题 926
24.3.2解决方案 926
24.3.3工作原理 926
24.4在OSGi注册表中寻找一个具体服务 929
24.4.1问题 929
24.4.2解决方案 930
24.4.3工作原理 930
24.5发布多个接口的一个服务 932
24.5.1问题 932
24.5.2解决方案 932
24.5.3工作原理 932
24.6定制Spring Dynamic Modules 933
24.6.1问题 933
24.6.2解决方案 933
24.6.3工作原理 933
24.7使用SpringSource dm Server 935
24.7.1问题 935
24.7.2解决方案 935
24.7.3工作原理 935
24.8 SpringSource的各类工具 937
24.8.1问题 937
24.8.2解决方案 937
24.8.3工作原理 937
24.9小结 938