第1部分 Spring 基礎
第 1 章 Spring 起步 3
1.1 什麼是Spring 4
1.2 初始化Spring 應用 6
1.2.1 使用Spring Tool Suite
初始化Spring 項目 7
1.2.2 檢查Spring 項目的
結構 10
1.3 編寫Spring 應用 16
1.3.1 處理Web 請求 16
1.3.2 定義視圖 17
1.3.3 測試控製器 18
1.3.4 構建和運行應用 20
1.3.5 瞭解Spring Boot DevTools 21
1.3.6 迴顧一下 23
1.4 俯瞰Spring 風景綫 24
1.4.1 Spring 核心框架 24
1.4.2 Spring Boot 25
1.4.3 Spring Data 25
1.4.4 Spring Security 25
1.4.5 Spring Integration 和Spring
Batch 26
1.4.6 Spring Cloud 26
1.5 小結 26
第 2 章 開發Web 應用 27
2.1 展現信息 27
2.1.1 構建領域類 28
2.1.2 創建控製器類 30
2.1.3 設計視圖 33
2.2 處理錶單提交 37
2.3 校驗錶單輸入 43
2.3.1 聲明校驗規則 43
2.3.2 在錶單綁定的時候執行
校驗 45
2.3.3 展現校驗錯誤 46
2.4 使用視圖控製器 48
2.5 選擇視圖模闆庫 49
2.6 小結 52
第3 章 使用數據 53
3.1 使用JDBC 讀取和寫入
數據 53
3.1.1 調整領域對象以適應
持久化 55
3.1.2 使用JdbcTemplate 56
3.1.3 定義模式和預加載數據 61
3.1.4 插入數據 63
3.2 使用Spring Data JPA 持久
化數據 72
3.2.1 添加Spring Data JPA 到
項目中 72
3.2.2 將領域對象標注為實體 73
3.2.3 聲明JPA repository 76
3.2.4 自定義JPA repository 77
3.3 小結 80
第4 章 保護Spring 81
4.1 啓用Spring Security 81
4.2 配置Spring Security 83
4.2.1 基於內存的用戶存儲 85
4.2.2 基於JDBC 的用戶存儲 86
4.2.3 以LDAP 作為後端的
用戶存儲 89
4.2.4 自定義用戶認證 92
4.3 保護Web 請求 100
4.3.1 保護請求 100
4.3.2 創建自定義的登錄頁 103
4.3.3 tui齣 105
4.3.4 防止跨站請求僞造 106
4.4 瞭解用戶是誰 107
4.5 小結 109
第5 章 使用配置屬性 111
5.1 細粒度的自動配置 112
5.1.1 理解Spring 的環境抽象 112
5.1.2 配置數據源 114
5.1.3 配置嵌入式服務器 115
5.1.4 配置日誌 116
5.1.5 使用特定的屬性值 118
5.2 創建自己的配置屬性 118
5.2.1 定義配置屬性的持有者 120
5.2.2 聲明配置屬性元數據 123
5.3 使用profile 進行配置 125
5.3.1 定義特定profile 的屬性 126
5.3.2 激活profile 127
5.3.3 使用profile 條件化地創建
bean 128
5.4 小結 129
第2部分 Spring 集成
第6 章 創建REST 服務 133
6.1 編寫RESTful 控製器 134
6.1.1 從服務器中檢索數據 136
6.1.2 發送數據到服務器端 140
6.1.3 在服務器上更新數據 142
6.1.4 刪除服務器上的數據 144
6.2 啓用超媒體 145
6.2.1 添加超鏈接 147
6.2.2 創建資源裝配器 149
6.2.3 命名嵌套式的關聯關係 154
6.3 啓用數據後端服務 155
6.3.1 調整資源路徑和關係
名稱 157
6.3.2 分頁和排序 159
6.3.3 添加自定義的端點 160
6.3.4 為Spring Data 端點添加
自定義的超鏈接 162
6.4 小結 163
第7 章 消費REST 服務 165
7.1 使用RestTemplate 消費
REST 端點 166
7.1.1 GET 資源 167
7.1.2 PUT 資源 169
7.1.3 DELETE 資源 169
7.1.4 POST 資源 169
7.2 使用Traverson 導航
REST API 170
7.3 小結 172
第8 章 發送異步消息 173
8.1 使用JMS 發送消息 174
8.1.1 搭建JMS 環境 174
8.1.2 使用JmsTemplate 發送
消息 176
8.1.3 接收JMS 消息 183
8.2 使用RabbitMQ 和
AMQP 186
8.2.1 添加RabbitMQ 到
Spring 中 188
8.2.2 通過RabbitTemplate 發送
消息 189
8.2.3 接收來自RabbitMQ 的
消息 192
8.3 使用Kafka 的消息 196
8.3.1 為Spring 搭建支持Kafka
消息的環境 197
8.3.2 通過KafkaTemplate 發送
消息 198
8.3.3 編寫Kafka 監聽器 200
8.4 小結 201
第9 章 Spring 集成 203
9.1 聲明一個簡單的
集成流 204
9.1.1 使用XML 定義集成流 205
9.1.2 使用Java 配置集成流 207
9.1.3 使用Spring Integration 的
DSL 配置 209
9.2 Spring Integration 功能
概覽 210
9.2.1 消息通道 211
9.2.2 過濾器 212
9.2.3 轉換器 213
9.2.4 路由器 214
9.2.5 切分器 216
9.2.6 服務激活器 218
9.2.7 網關 220
9.2.8 通道適配器 221
9.2.9 端點模塊 223
9.3 創建Email 集成流 224
9.4 小結 229
第3部分 反應式Spring
第 10 章 理解反應式編程 233
10.1 反應式編程概覽 234
10.2 初識Reactor 237
10.2.1 繪製反應式流圖 238
10.2.2 添加Reactor 依賴 239
10.3 使用常見的反應式
操作 240
10.3.1 創建反應式類型 240
10.3.2 組閤反應式類型 244
10.3.3 轉換和過濾反應式流 248
10.3.4 在反應式類型上執行邏輯
操作 258
10.4 小結 259
第 11 章 開發反應式API 261
11.1 使用Spring WebFlux 261
11.1.1 Spring WebFlux 簡介 262
11.1.2 編寫反應式控製器 264
11.2 定義函數式請求處
理器 268
11.3 測試反應式控製器 271
11.3.1 測試GET 請求 271
11.3.2 測試POST 請求 274
11.3.3 使用實時服務器進行
測試 275
11.4 反應式消費
REST API 276
11.4.1 獲取資源 277
11.4.2 發送資源 279
11.4.3 刪除資源 280
11.4.4 處理錯誤 280
11.4.5 交換請求 282
11.5 保護反應式Web API 283
11.5.1 配置反應式Web 應用的
安全性 284
11.5.2 配置反應式的用戶詳情
服務 285
11.6 小結 287
第 12 章 反應式持久化數據 289
12.1 理解Spring Data 的
反應式概況 290
12.1.1 Spring Data 反應式本
質論 290
12.1.2 反應式和非反應式類型
之間的轉換 291
12.1.3 開發反應式repository 292
12.2 使用反應式的
Cassandra repository 293
12.2.1 啓用Spring Data
Cassandra 293
12.2.2 理解Cassandra 的數據
模型 296
12.2.3 將領域對象映射為Cassandra
持久化 296
12.2.4 編寫反應式
Cassandra repository 301
12.3 編寫反應式的
MongoDB repository 304
12.3.1 啓用Spring Data
MongoDB 304
12.3.2 將領域對象映射為
文檔 306
12.3.3 編寫反應式的MongoDB
repository 接口 309
12.4 小結 312
第4 部分 雲原生Spring
第 13 章 注冊和發現服務 315
13.1 思考微服務 316
13.2 搭建服務注冊中心 318
13.2.1 配置Eureka 321
13.2.2 擴展Eureka 324
13.3 注冊和發現服務 325
13.3.1 配置Eureka 客戶端
屬性 326
13.3.2 消費服務 328
13.4 小結 332
第 14 章 管理配置 333
14.1 共享配置 334
14.2 運行配置服務器 335
14.2.1 啓用配置服務器 336
14.2.2 填充配置倉庫 339
14.3 消費共享配置 341
14.4 提供特定應用和profile 的
屬性 343
14.4.1 提供特定應用的屬性 343
14.4.2 提供來自profile 的
屬性 344
14.5 保持配置屬性的
私密性 346
14.5.1 在Git 中加密屬性 346
14.5.2 在Vault 中存儲私密
信息 349
14.6 在運行時刷新配置
屬性 353
14.6.1 手動刷新配置屬性 354
14.6.2 自動刷新配置屬性 356
14.7 小結 363
第 15 章 處理失敗和延遲 365
15.1 理解斷路器模式 365
15.2 聲明斷路器 367
15.2.1 緩解延遲 369
15.2.2 管理斷路器的閾值 371
15.3 監控失敗 372
15.3.1 Hystrix dashboard
簡介 373
15.3.2 理解Hystrix 的綫程
模型 375
15.4 聚閤多個Hystrix 流 377
15.5 小結 378
第5 部分 部署Spring
第 16 章 使用Spring Boot
Actuator 381
16.1 Actuator 概覽 382
16.1.1 配置Actuator 的基礎
路徑 383
16.1.2 啓用和禁用Actuator
端點 383
16.2 消費Actuator 端點 384
16.2.1 獲取應用的基礎信息 385
16.2.2 查看配置細節 388
16.2.3 查看應用的活動 396
16.2.4 獲取應用的指標 398
16.3 自定義Actuator 401
16.3.1 為“/info”端點提供信息 401
16.3.2 實現自定義的健康
指示器 405
16.3.3 注冊自定義的指標 407
16.3.4 創建自定義的端點 408
16.4 保護Actuator 411
16.5 小結 413
第 17 章 管理Spring 415
17.1 使用Spring Boot
Admin 415
17.1.1 創建Admin 服務器 416
17.1.2 注冊Admin 客戶端 418
17.2 探索Admin 服務器 421
17.2.1 查看應用基本的健康狀況
和信息 421
17.2.2 觀察核心指標 423
17.2.3 探查環境屬性 424
17.2.4 查看和設置日誌
級彆 424
17.2.5 監控綫程 425
17.2.6 跟蹤HTTP 請求 426
17.3 保護Admin 服務器 428
17.3.1 為Admin 服務器啓用登錄
功能 428
17.3.2 為Actuator 啓用認證 429
17.4 小結 429
第 18 章 使用JMX 監控
Spring 431
18.1 使用Actuator MBean 431
18.2 創建自己的MBean 434
18.3 發送通知 436
18.4 小結 437
第 19 章 部署Spring 439
19.1 權衡各種部署方案 440
19.2 構建和部署WAR
文件 441
19.3 推送JAR 文件到Cloud
Foundry 上 443
19.4 在Docker 容器中運行
Spring Boot 445
19.5 以終為始 449
19.6 小結 449
附錄 初始化Spring 應用 451
A.1 使用Spring Tool Suite
初始化項目 451
A.2 使用IntelliJ IDEA 初始化
項目 454
A.3 使用NetBeans 初始化
項目 457
A.4 在start.spring.io 中初始化
項目 459
A.5 使用命令行初始化
項目 462
A.5.1 curl 和Initializr API 462
A.5.2 Spring Boot 命令行
接口 464
A.6 使用元框架創建Spring
應用 465
A.7 構建和運行項目 465
· · · · · · (
收起)