全棧技能修煉:使用Angular和Spring Boot 打造全棧應用 ,

作者:王芃

出版社:電子工業出版社

ISBN:9787121371837

$50.95

產品號碼: 133857 貨號: 9787121371837 分類: , 標籤: , ,

本書涉及很多平臺、框架和類庫等,主要有前端使用的Angular,後端使用的Spring Boot框架、Spring Security安全框架,資料庫涉及MongoDB、Elasticsearch和Redis。此外,還會學習函數式程式設計、響應式程式設計(RxJS)、Redux等理念,Swagger、JaVers等工具及Rest、WebSocket、微服務等概念。一本書是無法深入這些技術細節的,這也不是本書的目標。希望通過本書,可以幫助讀者開啟一扇門,真正掌握這些讓人眼花繚亂的程式設計語言、框架、平臺、IDE等技術背後的程式設計思想。
 

目錄

第1章 技術的選型和環境搭建 1
1.1 技術選型 1
1.1.1 前端框架選型 2
1.1.2 後端框架選型 3
1.1.3 資料庫選型 3
1.2 環境搭建 5
1.2.1 基礎開發環境安裝 5
1.2.2 IDE 的選擇 7
1.2.3 字體的選擇 8
1.2.4 定義通用的代碼格式 9
1.3 工程項目的結構 10
1.3.1 前端項目 10
1.3.2 後端項目 13
1.3.3 整體專案工程的檔結構 14

第2章 使用Angular快速構造前端原型 17
2.1 Angular 基礎概念 17
2.1.1 安裝 Angular CLI 17
2.1.2 依賴性注入 22
2.1.3 組件 27
2.1.4 指令 28
2.1.5 管道 30
2.1.6 模組 31
2.1.7 範本驅動型表單 33
2.1.8 回應式表單 46
2.2 Angular Material 介紹 55
2.2.1 組件類別 55
2.2.2 佈局控制項:Sidenav 57
2.2.3 Flex 佈局和 Angular Flex-layout 60
2.2.4 封裝 Header/Footer/Sidebar 62
2.3 添加主題支援 78
2.3.1 Material Design 中對於主題的約束 79
2.3.2 主題的明與暗 79
2.3.3 Angular Material 中的主題 80
2.4 容器化 Angular 應用 83
2.4.1 什麼是容器 83
2.4.2 安裝 Docker 84
2.4.3 鏡像倉庫加速 85
2.4.4 創建 Angular 的 Docker 鏡像 85
2.4.5 啟動容器 87
2.4.6 使用 docker-compose 組織複雜的環境配置 88
2.4.7 使用 .dockerignore 文件 91

第3章 何謂後端 92
3.1 創建一個 Spring Boot 工程 93
3.1.1 通過 Gradle 創建 93
3.1.2 通過 Maven 創建 99
3.1.3 通過 IDE 創建 103
3.1.4 工程項目的組織 105
3.2 API 的構建可以如此簡單 109
3.2.1 API 工程結構 109
3.2.2 領域對象 111
3.2.3 構造 Controller 112
3.2.4 啟動服務 113
3.2.5 測試 API 115
3.3 MongoDB 支撐的 API 116
3.3.1 什麼是 NoSQL 116
3.3.2 MongoDB 的集成 119
3.3.3 HATEOAS 124
3.3.4 “魔法”的背後 129
3.3.5 讓後端也能熱*新 132
3.4 容器化後端 135
3.4.1 手動創建鏡像 135
3.4.2 使用 Gradle 自動化 Docker 任務 137
3.4.3 使用 docker-compose 組合服務 141
3.4.4 IDEA 中的 Gradle 支持 142
3.4.5 在容器中調試 143

第4章 登錄鑒權功能的構建 145
4.1 模組化和組件化 145
4.1.1 登錄的領域模型構建 145
4.1.2 前端頁面設計 147
4.2 回應式程式設計初探 166
4.2.1 不同的視角 166
4.2.2 實現一個計數器 169
4.2.3 為什麼要使用 Rx 177
4.2.4 Observable 的性質 178
4.2.5 RxJS 的調試 180
4.3 前端服務層 184
4.3.1 構建“偽”服務 184
4.3.2 構建“聰明組件” 188
4.3.3 路由處理 192
4.4 完成忘記密碼前端設計 194
4.4.1 使用 RxJS 打造短信驗證碼控制項 194
4.4.2 忘記密碼嚮導“笨元件” 199
4.4.3 忘記密碼的“聰明元件” 203

第5章 構建後端API 205
5.1 HyperMedia API 與傳統 API 205
5.1.1 領域對象 205
5.1.2 API的可見控制 211
5.1.3 傳統的 API 實現模式 218
5.2 Spring Data 中的查詢 221
5.2.1 基礎概念——Repository 221
5.2.2 查詢方式 223
5.2.3 複雜類型查詢 226
5.2.4 自訂查詢 228
5.2.5 自訂 Repository 229
5.3 Controller 的構建 230
5.3.1 改造 TaskRepo 和 UserRepo 230
5.3.2 實現 Controller 231
5.3.3 登錄 234
5.3.4 註冊 235
5.3.5 忘記密碼**步:驗證手機 236
5.3.6 忘記密碼第二步:重置密碼 244
5.3.7 API 的異常處理 246
5.4 構建安全的 API 介面 255
5.4.1 為什麼要保護 API 256
5.4.2 什麼是JWT 256
5.4.3 JWT的生成和解析 259
5.4.4 許可權的設計 260
5.4.5 使用 Spring Security 規劃角色安全 261
5.4.6 在 Spring Boot 中啟用 Spring Security 265
5.4.7 改造使用者物件 266
5.4.8 構建 JWT token 工具類 268
5.4.9 如何檢查任何請求的授權資訊 272
5.4.10 得到使用者資訊 275
5.4.11 配置 Spring Security 277
5.4.12 使用 JWT 進行 API 訪問 292
5.5 跨域和 API 文檔 305
5.5.1 跨域解決方案——CORS 305
5.5.2 API 文檔 309

第6章 前端和API的配合 322
6.1 回應式的 HTTP API 處理 322
6.1.1 Angular 中的 HTTP 服務 322
6.1.2 Angular 的開發環境配置 323
6.1.3 在前端服務中使用 HttpClient 327
6.1.4 *改註冊表單控制項 331
6.2 RxJs進階 332
6.2.1 改造登錄表單 332
6.2.2 RxJs的高階操作符 333
6.2.3 合併操作符 339
6.3 HTTP 攔截 342
6.3.1 實現一個簡單的 HttpInterceptor 342
6.3.2 鑒權HttpInterceptor 343
6.3.3 一個日誌攔截器 345
6.4 Angular 路由 346
6.4.1 基準錨連結 346
6.4.2 Router 模組的簡介 347
6.4.3 獲取父路由的參數 354
6.4.4 獲得前一個路由 354
6.4.5 Activated Route 354
6.5 安全守衛 355
6.5.1 啟動守衛 356
6.5.2 啟動子路由守衛 357
6.5.3 載入守衛 358
6.5.4 退出守衛 359
6.5.5 資料預獲取守衛 359

第7章 後端不只是API 361
7.1 緩存 361
7.1.1 配置 Cache 362
7.1.2 常用的緩存注解 364
7.1.3 測試緩存是否生效 366
7.2 Redis 作為緩存框架 368
7.2.1 Redis 的安裝配置 369
7.2.2 在 Spring Boot 中集成 Redis 370
7.2.3 Redisson 373
7.3 使用 ElasticSearch 提升搜索性能 375
7.3.1 配置 375
7.3.2 構建用戶查詢 API 379
7.4 Spring Boot Actuator 和數據審計 390
7.4.1 初窺審計事件 390
7.4.2 實現應用的資料審計 394
7.4.3 JaVers 和 Spring Boot 集成 396
7.5 WebSocket 即時通信服務 401
7.5.1 HTTP 和 WebSocket 的區別和聯繫 402
7.5.2 何時使用 WebSocket 403
7.5.3 STOMP 403
7.5.4 WebSocket 配置 404
7.5.5 WebScoket 安全 406
7.5.6 建立一個即時消息 Controller 409
7.5.7 測試 WebSocket 409
7.6 Spring Boot 的自動化測試 411

第8章 前端的工程化 422
8.1 使用 Redux 管理狀態 423
8.1.1 何時需要使用 Redux 423
8.1.2 Redux 的核心概念 424
8.1.3 在 Angular 中使用 Redux 429
8.1.4 Selector——狀態選擇器 434
8.2 使用 Effects管理的副作用 437
8.3 使用 @ngrx/entity 提升生產效率 441
8.4 服務端渲染 446
8.4.1 Angular Universal 的工作機理 447
8.4.2 安裝依賴 447
8.4.3 添加伺服器端渲染模組 448
8.4.4 使用 Node.js Express 構建伺服器 450
8.4.5 伺服器端渲染中出現重複請求的處理 453

第9章 Spring Cloud打造微服務 455
9.1 微服務的體系架構 455
9.1.1 服務即元件 45
 

作者介紹

王芃
 
資深開發人員、創業者,曾經在多家軟體公司任專案經理、專案總監、部門經理,後創立成都索課科技有限公司、瀋陽推碼科技科技有限公司等。在多年的開發經歷中用Java/C#/Javascript/Typescript 等語言開發了多種類型的專案,積累了豐富的開發經驗。樂於分享,發佈大量技術文章。
 

出版地

大陸

出版日期

09/01/2019

印刷

單色印刷

版別

初版

裝訂

平裝

語系

簡體中文

頁數

495