第一部分 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
· · · · · · (
收起)