精通Spring Java Web開發與Spring Boo
作 者: (印)蘭加·拉奧·卡拉南 著 石華耀,熊珅 譯
定 價: 99
出?版?社: 人民郵電出版社
出版日期: 2020年06月01日
頁 數: 340
裝 幀: 平裝
ISBN: 9787115539441
●章 向Spring Framework 5.0進化 1
1.1 Spring Framework 1
1.2 Spring Framework為什麼流行 2
1.2.1 簡測試 2
1.2.2 減少了銜接代碼 3
1.2.3 架構靈活性 4
1.2.4 與時俱進 4
1.3 Spring模塊 5
1.3.1 Spring核心容器 5
1.3.2 橫切關注點 5
1.3.3 Web層 6
1.3.4 業務層 6
1.3.5 數據層 6
1.4 Spring項目 6
1.4.1 Spring Boot 7
1.4.2 Spring Cloud 7
1.4.3 Spring Data 8
1.4.4 Spring Batch 8
1.4.5 Spring Security 8
1.4.6 Spring HATEOAS 9
1.5 Spring Framework 5.0中的新增功能 9
1.5.1 基準升級 10
1.5.2 JDK 9運行時兼容性 10
1.5.3 在Spring Framework代碼中使用JDK 8功能 11
1.5.4 反應式編程支持 11
1.5.5 函數式Web框架 11
1.5.6 Java通過Jigsaw實現模塊化 12
1.5.7 Kotlin支持 13
1.5.8 已停用的功能 14
1.6 Spring Boot 2.0的新增功能 14
1.7 小結 15
第2章 依賴注入 16
2.1 了解依賴注入 16
2.1.1 了解依賴項 17
2.1.2 Spring IoC容器 19
2.1.3 使用模擬對像測試 26
2.1.4 容器托管bean 28
2.1.5 依賴注入類型 28
2.1.6 Spring bean作用域 30
2.1.7 Java與XML配置 30
2.1.8 @Autowired 注解詳解 31
2.1.9 其他重要的Spring注解 32
2.1.10 上下文和依賴注入 32
2.2 小結 33
第3章 使用Spring MVC 構建Web應用程序 34
3.1 Java Web應用程序架構 34
3.1.1 Model 1架構 35
3.1.2 Model 2架構 35
3.1.3 Model 2前端控制器架構 36
3.2 基本流 37
3.2.1 基本設置 38
3.2.2 流1——不包含視圖的簡單控制器流 39
3.2.3 流2——包含視圖的簡單控制器流 42
3.2.4 流3——控制器通過模型重定向到視圖 45
3.2.5 流4——控制器通過ModelAndView重定向到視圖 47
3.2.6 流5——重定向到包含表單的視圖的控制器 48
3.2.7 流6——在上一個流中添加驗證功能 51
3.3 Spring MVC概述 54
3.3.1 重要特性 54
3.3.2 工作機制 55
3.4 Spring MVC背後的重要概念 56
3.4.1 RequestMapping 56
3.4.2 視圖解析 58
3.4.3 處理程序映射和攔截器 59
3.4.4 模型屬性 61
3.4.5 會話屬性 62
3.4.6 @InitBinder注解 63
3.4.7 @ControllerAdvice注解 63
3.5 Spring MVC——不錯功能 64
3.5.1 異常處理 64
3.5.2 國際化 66
3.5.3 對Spring 控制器進行集成測試 68
3.5.4 提供靜態資源 69
3.5.5 集成Spring MVC與Bootstrap 71
3.6 Spring Security 72
3.6.1 添加Spring Security依賴項 73
3.6.2 配置過濾器以攔截所有請求 73
3.6.3 注銷 74
3.7 小結 75
第4章 向微服務和雲原生應用程序進化 76
4.1 使用Spring的典型Web應用程序架構 77
4.1.1 Web層 77
4.1.2 業務層 78
4.1.3 數據層 78
4.1.4 集成層 79
4.1.5 橫切關注點 79
4.2 Spring解決的問題 79
4.2.1 松散耦合和可測試性 80
4.2.2 銜接代碼 80
4.2.3 輕量級架構 80
4.2.4 架構靈活性 80
4.2.5 簡化橫切關注點的實現過程 81
4.2.6 免費的設計模式 81
4.3 應用程序開發目標 81
4.3.1 速度 82
4.3.2 安全保障 83
4.3.3 可擴展性 84
4.4 單體應用面臨的挑戰 84
4.4.1 漫長的發布周期 85
4.4.2 難以擴展 85
4.4.3 適應新技術 85
4.4.4 適應新方法 85
4.4.5 適應現代化開發實踐 85
4.5 了解微服務 85
4.5.1 什麼是微服務 86
4.5.2 微服務架構 86
4.5.3 微服務的特點 88
4.5.4 微服務的優勢 91
4.5.5 微服務面臨的挑戰 92
4.6 雲原生應用程序 94
4.7 Spring項目 98
4.7.1 Spring Boot 98
4.7.2 Spring Cloud 99
4.8 小結 99
第5 章 使用Spring Boot構建微服務 100
5.1 什麼是Spring Boot 100
5.1.1 快速構建微服務器原型 101
5.1.2 主要目標 101
5.1.3 非功能性特性 102
5.2 Spring Boot Hello World 102
5.2.1 配置spring-boot-starter-parent 102
5.2.2 用所需的starter項目配置pom.xml 105
5.2.3 配置spring-boot-maven-plugin 106
5.2.4 創建個Spring Boot啟動類 107
5.2.5 運行Hello World應用程序 ....... 108
5.2.6 自動配置 110
5.2.7 starter項目 113
5.3 什麼是REST 114
5.4 首個REST服務 115
5.4.1 返回字符串的簡單方法 116
5.4.2 返回對像的簡單REST方法 118
5.4.3 包含路徑變量的GET方法 120
5.5 創建待辦事項資源 121
5.5.1 請求方法、操作和URI 122
5.5.2 bean和服務 122
5.5.3 檢索待辦事項列表 124
5.5.4 檢索特定待辦事項的詳細信息 126
5.5.5 添加待辦事項 128
5.6 Spring Initializr 132
5.7 自動配置概述 136
5.8 小結 138
第6章 擴展微服務 139
6.1 異常處理 139
6.2 HATEOAS 144
6.3 驗證 147
6.3.1 對控制器方法啟用驗證 148
6.3.2 定義bean驗證 148
6.3.3 驗證測試 149
6.4 編寫REST服務文檔 149
6.5 使用Spring Security確保REST服務的安全 156
6.5.1 添加Spring Security starter 157
6.5.2 基本身份驗證 157
6.5.3 OAuth 2身份驗證 159
6.6 國際化 164
6.7 緩存 166
6.7.1 spring-boot-startercache 166
6.7.2 啟用緩存 167
6.7.3 緩存數據 167
6.7.4 JSR-107緩存注解 167
6.8 小結 168
第7章 Spring Boot的不錯功能 169
7.1 配置外部化 169
7.1.1 通過application.properties自定義框架 170
7.1.2 application.properties中的自定義屬性 173
7.1.3 配置文件 176
7.1.4 其他定義應用程序配置值的選項 178
7.1.5 YAML配置 178
7.2 嵌入式服務器 179
7.2.1 切換到Jetty和Undertow 182
7.2.2 構建WAR文件 183
7.3 開發者工具 183
7.4 Spring Boot Actuator 184
7.4.1 HAL瀏覽器 185
7.4.2 配置屬性 187
7.4.3 環境細節 188
7.4.4 運行狀況 189
7.4.5 映射 189
7.4.6 bean 190
7.4.7 度量 191
7.4.8 自動配置 193
7.4.9 調試 194
7.5 部署應用程序到雲端 194
7.6 小結 196
第8章 Spring Data 197
8.1 背景信息——數據存儲 197
8.2 Spring Data 198
8.2.1 Spring Data Commons 199
8.2.2 Spring Data JPA 200
8.3 Spring Data Rest 212
8.3.1 GET方法 213
8.3.2 POST方法 214
8.3.3 搜索資源 215
8.4 大數據 215
8.5 小結 217
第9章 Spring Cloud 218
9.1 Spring Cloud 簡介 218
9.2 演示微服務設置 220
9.2.1 微服務A 220
9.2.2 服務消費方 223
9.3 集中式微服務配置 225
9.3.1 問題陳述 225
9.3.2 解決方案 226
9.3.3 選項 226
9.3.4 Spring Cloud Config 227
9.4 Spring Cloud Bus 233
9.4.1 Spring Cloud Bus需求 233
9.4.2 使用Spring Cloud Bus傳播配置更改 233
9.4.3 實現 234
9.5 聲明式REST客戶端——Feign 235
9.6 負載均衡 237
9.7 名稱服務器 240
9.8 名稱服務器的工作機制 240
9.8.1 選項 241
9.8.2 實現 241
9.9 API 網關 245
9.10 分布式跟蹤 250
9.10.1 分布式跟蹤選項 250
9.10.2 實現Spring Cloud Sleuth和Zipkin 251
9.11 Hystrix——容錯 256
9.12 小結 257
0章 Spring Cloud Data Flow 258
10.1 基於消息的異步通信 258
10.2 用於異步消息傳遞的Spring項目 260
10.2.1 Spring Integration 261
10.2.2 Spring Cloud Stream 261
10.2.3 Spring Cloud Data Flow 262
10.3 Spring Cloud Stream 263
10.3.1 Spring Cloud Stream架構 263
10.3.2 事件處理——股票交易示例 264
10.4 Spring Cloud Data Flow 269
10.4.1 不錯架構 270
10.4.2 實現Spring Cloud Data Flow 271
10.4.3 Spring Cloud Data Flow REST API 280
10.5 Spring Cloud Task 281
10.6 小結 282
1章 反應式編程 283
11.1 反應式宣言 283
11.2 反應式用例——股價頁面 285
11.2.1 傳統方法 285
11.2.2 反應式方法 286
11.2.3 傳統與反應式方法比較 286
11.3 Java反應式編程 287
11.3.1 反應式流 287
11.3.2 Reactor 288
11.3.3 Spring Web Reactive 292
11.3.4 反應式數據庫 298
11.4 小結 302
2章 Spring最佳實踐 303
12.1 Maven標準目錄布局 303
12.2 分層架構 304
12.3 異常處理 306
12.3.1 Spring的異常處理方法 307
12.3.2 推薦的處理方法 307
12.4 確保簡化Spring配置 308
12.4.1 在ComponentScan中使用basePackageClasses屬性 308
12.4.2 不在架構引用中使用版本號 308
12.4.3 強制性依賴項首選構造函數注入而不是setter注入 309
12.5 管理Spring項目的依賴項版本 309
12.測試 311
12.6.1 業務層 311
12.6.2 Web層 312
12.6.3 數據層 312
12.6.4 其他最佳實踐 313
12.7 集成測試 313
12.7.1 Spring Session 314
12.7.2 示例 315
12.8 緩存 316
12.8.1 添加Spring Boot Starter Cache依賴項 317
12.8.2 添加緩存注解 317
12.9 日志記錄 317
12.9.1 Logback 317
12.9.2 Log4j2 318
12.9.3 獨立於框架的配置 319
12.10 小結 319
3章 在Spring 中使用Kotlin 320
13.1 Kotlin 320
13.2 Kotlin與Java 321
13.2.1 變量和類型推斷 321
13.2.2 變量和不變性 322
13.2.3 類型繫統 322
13.2.4 函數 323
13.2.5 數組 324
13.2.6 集合 324
13.2.7 未受檢異常 325
13.2.8 數據類 326
13.3 在Eclipse 中創建Kotlin項目 326
13.3.1 Kotlin插件 326
13.3.2 創建Kotlin項目 327
13.3.3 創建Kotlin類 329
13.3.4 運行Kotlin類 330
13.4 使用Kotlin創建Spring Boot項目 331
13.4.1 依賴項和插件 332
13.4.2 Spring Boot應用程序類 333
13.4.3 Spring Boot應用程序測試類 334
13.5 使用Kotlin實現REST服務 335
13.5.1 返回字符串的簡單方法 335
13.5.2 返回對像的簡單REST方法 337
13.5.3 包含路徑變量的GET方法 338
13.6 小結 340
內容簡介
本書是使用Spring進行Java Web開發的指導手冊,介紹了Spring Framework的演變——從解決可測試應用程序的問題到在雲端構建分布式應用程序。本書介紹了Spring 5.0的新增功能,講解如何使用Spring MVC構建應用程序,然後全面闡釋如何使用Spring Framework構建並擴展微服務,以及如何開發和部署雲應用程序。讀者會了解應用程序架構的進化過程——從單體架構到圍繞微服務構建的架構。此外,本書還介紹了Spring Boot的不錯功能,並通過強大的示例演示這些功能。學完本書之後,讀者將掌握使用Spring Framework開發應用程序的相關知識和實踐策略。本書適合經驗豐富的Java開發者閱讀。