【好書推薦】從企業級開發到雲原生微服務 Spring Boot實戰

商品介紹

出版社: 電子工業出版社
ISBN:9787121377921
版次:1
商品編碼:12760084
品牌:博文視點
包裝:平裝
開本:16開
出版時間:2020-01-01
用紙:膠版紙
頁數:504
正文語種:中文

內容簡介

本書以Spring 5.2和Spring Boot 2.2爲基礎,系統地講解了在日常企業級開發和微服務開發中面臨的大部分的問題,如函數式編

程、Spring MVC、Spring Data、Spring Security、響應式編程、事件驅動、Spring Integration、Spring Batch、Spring Cloud、

Kubernetes 與微服務等。本書內容由淺入深,適合有Java基礎的初級程序員學習。同時,本書還介紹了較深的理論及原理知

識,可供中、高級工程師提升使用。本書講解的所有主題都附有實戰案例,讀者可快速將相關技術應用於工作實踐中。

作者簡介

汪雲飛,開源技術專家,擁有10年以上的Java EE開發經驗。著有《Java EE開發的顛覆者:Spring Boot實戰》一書,是國內較

早的Spring Boot、Spring Cloud應用推廣者。

目錄

第 1 章 初識 Spring Boot 1
1.1 Spring Boot 概述 1
1.2 快速建立 Spring Boot 應用 2
1.2.1 安裝 Java 2
1.2.2 使用 Spring Initializr 2
1.2.3 第一段代碼 3
1.3 體驗 Spring Boot 4
1.3.1 Spring Boot 的應用結構 4
1.3.2 build.gradle 5
1.3.3 QuickStartApplication 5
1.3.4 application.properties 6
1.4 小結 6


第 2 章 函數式編程 7
2.1 瞭解函數式編程 7
2.2 Lambda 表達式 7
2.2.1 瞭解 Lambda 表達式 7
2.2.2 把 Lambda 表達式作爲參數 8
2.3 函數接口 9
2.3.1 Predicate 10
2.3.2 Function 12
2.3.3 Consumer 14
2.3.4 Supplier 14
2.3.5 Operator 15
2.3.6 Comparator 15
2.3.7 自定義函數接口 16
2.4 方法引用 16
2.4.1 構造器方法引用 16
2.4.2 靜態方法引用 17
2.4.3 實例方法引用 18
2.4.4 引用特定類的任意對象的方法 18
2.5 Stream 18
2.5.1 Stream 簡介 19
2.5.2 獲得 Stream 19
2.5.3 中間操作 20
2.5.4 終結操作 23
2.6 Optional 27
2.6.1 獲得 Optional 28
2.6.2 Optional 的用法 28
2.7 小結


第 3 章 Spring 5.X 基礎 30
3.1 IoC 容器 30
3.2 Spring Bean 的配置 31
3.2.1 註解配置(@Component) 31
3.2.2 Java 配置(@Configuration 和@Bean) 31
3.2.3 依賴注入(Dependency Injection) 32
3.2.4 運行檢驗(CommandLineRunner) 37
3.2.5 Bean 的 Scope 38
3.2.6 Bean 的生命週期 40
3.2.7 應用環境 43
3.2.8 條件配置(@Conditional) 46
3.2.9 開啓配置(@Enable*和@Import) 47
3.3 對 Bean 的處理(BeanPostProcessor) 53
3.4 Spring Aware 容器 54
3.5 Bean 之間的事件通信 57
3.6 Spring EL 59
3.7 AOP 61
3.8 註解工作原理 64
3.8.1 BeanPostProcessor 64
3.8.2 BeanFactoryPostProcessor 66
3.8.3 使用 AOP 68
3.8.4 組合元註解 68
3.9 小結


第 4 章 深入 Spring Boot 69
4.1 Spring Boot 介紹 69
4.2 Spring Boot 的“魔法” 69
4.2.1 加載自動配置 69
4.2.2 實現自動配置 71
4.3 Spring Boot 的配置 73
4.3.1 應用配置 74
4.3.2 修改默認配置 76
4.3.3 外部配置 79
4.4 日誌和報告 91
4.4.1 日誌 91
4.4.2 報告 93
4.5 多線程任務和計劃任務 94
4.5.1 Task Executor 94
4.5.2 Task Scheduler 97
4.6 Gradle 插件 99
4.6.1 依賴 99
4.6.2 Spring Boot Starter 100
4.6.3 插件任務 100
4.7 自定義 Starter 100
4.7.1 包裝技術庫 101
4.7.2 Starter 的結構 103
4.7.3 autoconfigure 模塊 105
4.7.4 Starter 模塊 107
4.7.5 使用 Starter 108
4.8 Spring Boot Actuator 110
4.8.1 常用端點 110
4.8.2 自定義 119
4.8.3 使用 Prometheus 和 Grafana 監控指標 124
4.9 小結 128


第 5 章 Spring Web MVC 129
5.1 Spring Web MVC 簡介 129
5.2 用 Spring Boot 學習 Web MVC 129
5.2.1 核心註解 129
5.2.2 RESTful 服務 130
5.2.3 @ControllerAdvice 146
5.2.4 @RestControllerAdvice 151
5.2.5 JSON 定製 156
5.2.6 RestTemplate 159
5.3 Web MVC 配置 161
5.3.1 Spring MVC 的工作原理 161
5.3.2 配置 MVC 161
5.3.3 Interceptor 162
5.3.4 Formatter 164
5.3.5 HttpMessageConverter 166
5.3.6 方法參數和返回值處理設置 169
5.3.7 初始化數據綁定設置 176
5.3.8 類型轉換原理與設置 176
5.3.9 路徑匹配和內容協商 183
5.3.10 JSON 188
5.3.11 其他外部屬性配置 189
5.4 Servlet 容器 191
5.4.1 註冊 Servlet、Filter 和 Listener 191
5.4.2 配置 Servlet 容器 196
5.5 異步請求 202
5.5.1 Servlet 3.0 異步返回 202
5.5.2 HTTP 206
5.5.3 HTTP/2 212
5.6 小結 214


第 6 章 數據訪問 215
6.1 Spring Data Repository 215
6.1.1 DDD 與 Spring Data Repository 215
6.1.2 查詢方法 218
6.2 關係數據庫——Spring Data JPA 218
6.2.1 JPA、Hibernate 和 Spring Data JPA 218
6.2.2 環境準備 218
6.2.3 自動配置 220
6.2.4 定義聚合 221
6.2.5 定義聚合 Repository 224
6.2.6 查詢 226
6.2.7 事件監聽 238
6.2.8 領域事件 242
6.2.9 審計功能 245
6.2.10 Web 支持 246
6.2.11 數據庫初始化 248
6.3 NoSQL——Spring Data Elasticsearch 252
6.3.1 Elascticsearch 簡介 252
6.3.2 環境準備 252
6.3.3 自動配置 253
6.3.4 定義聚合 254
6.3.5 定義聚合 Repository 255
6.3.6 查詢 256
6.4 數據緩存 261
6.4.1 Spring Boot 與緩存 261
6.4.2 環境準備 262
6.4.3 使用緩存註解 264
6.5 小結 266


第 7 章 安全控制 267
7.1 Spring Security 的應用 267
7.1.1 Spring Boot 的自動配置 267
7.1.2 開啓 Web 安全配置 268
7.1.3 定製 Web 安全配置 268
7.1.4 Authentication 269
7.1.5 Authorization 281
7.1.6 Spring Data 集成 294
7.2 Spring Security 實戰 295
7.3 OAuth 2.0 301
7.3.1 OAuth 2.0 Authorization Server 301
7.3.2 OAuth 2.0 Resource Server 310
7.3.3 OAuth 2.0 Client 317
7.4 小結 322


第 8 章 響應式編程 323
8.1 Project 323
8.1.1 Reactive Streams 的基礎接口 323
8.1.2 Flux 和 Mono 325
8.2 Spring WebFlux 327
8.2.1 Spring WebFlux 基礎 327
8.2.2 Spring Boot 的自動配置 328
8.2.3 註解控制器 329
8.2.4 函數式端點 332
8.2.5 Spring WebFlux 的配置 334
8.3 Reactive NoSQL 334
8.3.1 響應式 Elasticsearch 335
8.3.2 響應式 MongoDB 339
8.4 Reactive 關係型數據庫:R2DBC 342
8.4.1 安裝 PostgreSQL 343
8.4.2 Spring Boot 的自動配置 343
8.4.3 示例 344
8.5 Reactive Spring Security 347
8.5.1 Reactive Spring Security 原理 347
8.5.2 Spring Boot 的自動配置 347
8.5.3 示例 348
8.6 小結 354


第 9 章 事件驅動 355
9.1 JMS 355
9.1.1 安裝 Apache ActiveMQ Artemis 355
9.1.2 新建應用 356
9.1.3 Spring Boot 的自動配置 356
9.1.4 示例 356
9.1.5 Topic 和 Queue 358
9.2 RabbitMQ 360
9.3 Kafka 367
9.4 Websocket 374
9.4.1 STOMP Websocket 374
9.4.2 Reactive Websocket 379
9.5 RSocket 382
9.5.1 新建應用 382
9.5.2 Spring Boot 的自動配置 383
9.5.3 示例 383
9.6 小結 388


第 10 章 系統集成與批處理 389
10.1 Spring Integration 389
10.1.1 Spring Integration 基礎 389
10.1.2 Spring Integration Java DSL 391
10.1.3 示例 392
10.2 Spring Batch 395
10.2.1 Spring Batch 的流程 396
10.2.2 Spring Boot 的自動配置 396
10.2.3 示例 397
10.3 小結 402


第 11 章 Spring Cloud 與微服務 403
11.1 微服務基礎 403
11.1.1 微服務和雲原生應用 403
11.1.2 領域驅動設計 404
11.2 Spring Cloud 405
11.2.1 服務發現 405
11.2.2 配置管理 408
11.2.3 同步服務交互 412
11.2.4 異步服務交互 417
11.2.5 響應式異步交互 427
11.2.6 應用網關:Spring Cloud Gateway 430
11.2.7 認證授權 433
11.3 小結 442


第 12 章 Kubernetes 與微服務 443
12.1 Kubernetes 443
12.1.1 安裝 443
12.1.2 Kubernetes 基礎知識 445
12.1.3 Helm 460
12.1.4 DevOps 463
12.1.5 安裝 Jenkins 464
12.1.6 微服務示例 465
12.1.7 鏡像倉庫和 Dockerfile 467
12.1.8 使用 Helm 打包應用 471
12.1.9 Jenkins 流程 475
12.2 Service Mesh 和 Istio 481
12.2.1 安裝 Istio 482
12.2.2 微服務示例 483
12.3 小結 490
發佈了97 篇原創文章 · 獲贊 44 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章