Spring 實戰, 6/e Spring in Action, 6/e

[美]克雷格·沃斯(Craig Walls)

  • 出版商: 人民郵電
  • 出版日期: 2022-12-01
  • 定價: $659
  • 售價: 8.5$560 (限時優惠至 2024-04-30)
  • 語言: 簡體中文
  • 頁數: 476
  • ISBN: 711559869X
  • ISBN-13: 9787115598691
  • 相關分類: Java
  • 此書翻譯自: Spring in Action, 6/e (Paperback)
  • 銷售排行: 🥈 2023/1 簡體中文書 銷售排行 第 2 名

    立即出貨

  • Spring 實戰, 6/e-preview-1
  • Spring 實戰, 6/e-preview-2
Spring 實戰, 6/e-preview-1

買這商品的人也買了...

商品描述

本書是一本經典而實用的Spring學習指南,介紹了Spring使用框架、Spring Boot,以及Spring系統中的其他組成部分。

本書分為4個部分,共18章。第1部分(第1章~第6章)涵蓋了構建Spring應用的基礎知識。第2部分(第7章~第10章)討論瞭如何講Spring應用與其他應用進行集成。第3部分(第11章~第14章)探討了Spring對反應式編程提供的全新支持。第4部分(第15章~第18章)介紹瞭如何做好應用投入生產環境前的準備工作,以及如何進行部署。

本書適合剛剛開始學習Spring Boot和Spring框架的Java開發人員閱讀,也適合想要超越基礎知識並學習Spring新特性的經驗豐富的Spring開發者參考。

作者簡介

Craig Walls是Pivotal的工程师。他是Spring框架的热心推动者,经常在本地用户组和会议上发言,撰写关于Spring的文章。在不琢磨代码的时候,Craig经常计划去迪斯尼世界或迪斯尼的下一次旅行,他希望尽可能多地陪伴他的妻子、两个女儿和宠物。

目錄大綱

第 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項目的結構 9

1.3 編寫Spring應用 15

1.3.1 處理Web請求 16

1.3.2 定義視圖 17

1.3.3 測試控制器 18

1.3.4 構建和運行應用 19

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 24

1.4.3 Spring Data 25

1.4.4 Spring Security 25

1.4.5 Spring Integration和

Spring Batch 25

1.4.6 Spring Cloud 26

1.4.7 Spring Native 26

1.5 小結 26

第 2章 開發Web應用 27

2.1 展現信息 28

2.1.1 構建領域類 29

2.1.2 創建控制器類 32

2.1.3 設計視圖 36

2.2 處理表單提交 39

2.3 校驗表單輸入 46

2.3.1 聲明校驗規則 47

2.3.2 在表單綁定的時候執行校驗 49

2.3.3 展現校驗錯誤 50

2.4 使用視圖控制器 51

2.5 選擇視圖模板庫 53

2.5.1 緩存模板 55

2.6 小結 55

第3章 使用數據 57

3.1 使用JDBC讀取和寫入數據 57

3.1.1 調整領域對象以適應持久化 59

3.1.2 使用JdbcTemplate 60

3.1.3 定義模式和預加載數據 66

3.1.4 插入數據 68

3.2 使用Spring Data JDBC 73

3.2.1 添加Spring Data JDBC到構建文件中 74

3.2.2 定義存儲庫接口 74

3.2.3 為領域類添加持久化的註解 76

3.2.4 使用CommandLineRunner預加載數據 78

3.3 使用Spring Data JPA持久化數據 80

3.3.1 添加Spring Data JPA到項目中 80

3.3.2 將領域對象標註為實體 81

3.3.3 聲明JPA存儲庫 84

3.3.4 自定義JPA存儲庫 85

小結 88

第4章 使用非關系型數據 89

4.1 使用Cassandra存儲庫 90

4.1.1 啟用Spring Data Cassandra 90

4.1.2 理解Cassandra數據模型 93

4.1.3 為Cassandra持久化映射領域類型 93

4.1.4 編寫Cassandra存儲庫 99

4.2 編寫MongoDB存儲庫 100

4.2.1 啟用Spring Data MongoDB 101

4.2.2 將領域類型映射為文檔 102

4.2.3 編寫MongoDB存儲庫接口 105

小結 106

第5章 保護Spring 107

5.1 啟用Spring Security 107

5.2 配置Spring Security 110

5.2.1 基於內存的用戶詳情服務 111

5.2.2 自定義用戶認證 112

5.3 保護Web請求 118

5.3.1 保護請求 118

5.3.2 創建自定義的登錄頁 121

5.3.3 啟用第三方認證 123

5.3.4 防止跨站請求偽造 126

5.4 實現方法級別的安全 127

5.5 瞭解用戶是誰 129

小結 132

第6章 使用配置屬性 133

6.1 細粒度地調整自動配置 134

6.1.1 理解Spring的環境抽象 134

6.1.2 配置數據源 136

6.1.3 配置嵌入式服務器 137

6.1.4 配置日誌 138

6.1.5 使用特定的屬性值 140

6.2 創建自己的配置屬性 140

6.2.1 定義配置屬性的持有者 143

6.2.2 聲明配置屬性元數據 145

6.3 使用profile進行配置 147

6.3.1 定義特定profile的屬性 147

6.3.2 激活profile 149

6.3.3 使用profile條件化地創建bean 150

小結 151

 

第 2部分 Spring集成

 

第7章 創建REST服務 155

7.1 編寫RESTful控制器 156

7.1.1 從服務器中檢索數據 156

7.1.2 發送數據到服務器端 162

7.1.3 在服務器上更新數據 163

7.1.4 刪除服務器上的數據 165

7.2 啟用數據後端服務 165

7.2.1 調整資源路徑和關系名稱 168

7.2.2 分頁和排序 170

7.3 消費REST服務 171

7.3.1 GET資源 173

7.3.2 PUT資源 174

7.3.3 DELETE資源 174

7.3.4 POST資源 175

小結 176

第8章 保護REST 177

8.1 OAuth 2簡介 178

8.2 創建授權服務器 183

8.3 使用資源服務器保護API 190

8.4 開發客戶端 193

小結 198

第9章 發送異步消息 199

9.1 使用JMS發送消息 200

9.1.1 搭建JMS環境 200

9.1.2 使用JmsTemplate發送消息 202

9.1.3 接收JMS消息 210

9.2 使用RabbitMQ和

AMQP 214

9.2.1 添加RabbitMQ到Spring中 215

9.2.2 通過RabbitTemplate發送消息 216

9.2.3 接收來自RabbitMQ的消息 220

9.3 使用Kafka的消息 224

9.3.1 為Spring搭建支持Kafka消息的環境 224

9.3.2 通過KafkaTemplate發送消息 226

9.3.3 編寫Kafka監聽器 228

小結 229

第 10章 Spring集成 231

10.1 聲明一個簡單的集成流 232

10.1.1 使用XML定義集成流 233

10.1.2 使用Java配置集成流 235

10.1.3 使用Spring Integration的DSL配置 237

10.2 Spring Integration功能概覽 238

10.2.1 消息通道 239

10.2.2 過濾器 240

10.2.3 轉換器 241

10.2.4 路由器 243

10.2.5 切分器 244

10.2.6 服務激活器 247

10.2.7 網關 249

10.2.8 通道適配器 250

10.2.9 端點模塊 252

10.3 創建電子郵件集成流 253

小結 261

 

第3部分 反應式Spring

 

第 11章 理解反應式編程 265

11.1 反應式編程概覽 266

11.1.1 定義反應式流 267

11.2 初識Reactor 269

11.2.1 繪制反應式流圖 270

11.2.2 添加Reactor依賴 271

11.3 使用常見的反應式操作 272

11.3.1 創建反應式類型 272

11.3.2 組合反應式類型 276

11.3.3 轉換和過濾反應式流 280

11.3.4 在反應式類型上執行邏輯操作 290

小結 292

第 12章 開發反應式API 293

12.1 使用Spring WebFlux 293

12.1.1 Spring WebFlux簡介 294

12.1.2 編寫反應式控制器 296

12.2 定義函數式請求處理器 300

12.3 測試反應式控制器 304

12.3.1 測試GET請求 304

12.3.2 測試POST請求 307

12.3.3 使用實時服務器進行測試 308

12.4 反應式消費REST API 309

12.4.1 獲取資源 310

12.4.2 發送資源 312

12.4.3 刪除資源 313

12.4.4 處理錯誤 313

12.4.5 交換請求 315

12.5 保護反應式Web API 316

12.5.1 配置反應式Web應用的安全性 317

12.5.2 配置反應式的用戶詳情服務 318

12.6 小結 320

第 13章 反應式持久化數 321

13.1 使用R2DBC 321

13.1.1 為R2DBC定義領域實體 322

13.1.2 定義反應式存儲庫 326

13.1.3 測試R2DBC存儲庫 328

13.1.4 定義OrderRepository的聚合根服務 330

13.2 反應式地持久化MongoDB文檔數據 336

13.2.1 定義領域文檔類型 337

13.2.2 定義反應式MongoDB存儲庫 340

13.2.3 測試反應式MongoDB存儲庫 340

13.3 反應式地持久化Cassandra數據 344

13.3.1 定義使用Cassandra持久化的領域類 344

13.3.2 創建反應式Cassandra存儲庫 348

13.3.3 測試反應式Cassandra存儲庫 349

小結 351

第 14章 使用RSocket 353

14.1 RSocket概覽 354

14.2 創建簡單的RSocket服務器和客戶端 355

14.2.1 使用請求-響應通信模型 356

14.2.2 處理請求-流的消息 359

14.2.3 發送即發即忘的消息 361

14.2.4 雙向發送消息 363

14.3 通過WebSocket傳輸RSocket 366

小結 367

 

第4部分 部署Spring

 

第 15章 使用Spring Boot Actuator 371

15.1 Actuator概覽 371

15.1.1 配置Actuator的基礎路徑 373

15.1.2 啟用和禁用Actuator端點 373

15.2 消費Actuator端點 374

15.2.1 獲取應用的基礎信息 375

15.2.2 查看配置細節 378

15.2.3 查看應用的活動 386

15.2.4 挖掘應用運行時的指標 388

15.3 自定義Actuator 391

15.3.1 為“/info”端點提供息 391

15.3.2 實現自定義的健康指示器 396

15.3.3 註冊自定義的指標 398

15.3.4 創建自定義的端點 399

15.4 確保Actuator的安全 402

小結 404

第 16章 管理Spring

16.1 使用Spring Boot

Admin 

16.1.1 創建Admin服務器 406

16.1.2 註冊Admin客戶端 407

16.2 探索Admin服務器 409

16.2.1 查看應用基本的健康狀況和信息 409

16.2.2 觀察核心指標 410

16.2.3 探查環境屬性 410

16.2.4 查看和設置日誌級別 411

16.3 保護Admin服務器 412

16.3.1 為Admin服務器啟用登錄功能 412

16.3.2 為Actuator啟用認證 413

小結 414

第 17章 使用JMX監控Spring 415

17.1 使用Actuator MBean 415

17.2 創建自己的MBean 418

17.3 發送通知 419

17.4 小結 421

第 18章 部署Spring 423

18.1 權衡各種部署方案 424

18.2 構建可執行JAR文件 425

18.3 構建容器鏡像 426

18.3.1 部署至Kubernetes 428

18.3.2 啟用優雅關機功能 430

18.3.3 處理應用程序的存活和就緒狀態 431

18.4 構建和部署WAR文件 434

18.5 以終為始 436

18.6 小結 436

附錄 初始化Spring應用 437

A.1 使用Spring Tool Suite初始化項目 437

A.2 使用IntelliJ IDEA初始化項目 440

A.3 使用NetBeans初始化項目 441

A.4 在start.spring.io中初始化項目 445

A.5 使用命令行初始化項目 447

A.5.1 curl和Initializr API 448

A.5.2 Spring Boot命令行接口 449

A.6 構建和運行項目 450