《從企業級開發到雲原生微服務:SpringBoot實戰》是2020年1月電子工業出版社出版的圖書,作者是汪雲飛,沈永林,陳曉茜。
基本介紹
- 書名:從企業級開發到雲原生微服務:SpringBoot實戰
- 作者:汪雲飛,沈永林,陳曉茜
- 出版社:電子工業出版社
- 出版時間:2020年1月
- 頁數:504 頁
- 開本:16 開
- ISBN:9787121377921
- 字數:700千字
- 版次:01-01
內容簡介,圖書目錄,
內容簡介
本書以Spring 5.2和Spring Boot 2.2為基礎,系統地講解了在日常企業級開發和微服務開發中面臨的大部分的問題,如函式式編程、Spring MVC、Spring Data、Spring Security、回響式編程、事件驅動、Spring Integration、Spring Batch、Spring Cloud、Kubernetes 與微服務等。本書內容由淺入深,適合有Java基礎的初級程式設計師學習。同時,本書還介紹了較深的理論及原理知識,可供中、高級工程師提升使用。本書講解的所有主題都附有實戰案例,讀者可快速將相關技術套用於工作實踐中。
圖書目錄
第1章 初識Spring Boot1
1.1 Spring Boot概述1
1.2 快速建立Spring Boot套用2
1.2.1 安裝Java2
1.2.2 使用Spring Initializr2
1.2.3 第一段代碼3
1.3 體驗Spring Boot4
1.3.1 Spring Boot的套用結構4
1.3.2 build.gradle5
1.3.3 QuickStartApplication5
1.3.4 application.properties6
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 Predicate10
2.3.2 Function12
2.3.3 Consumer14
2.3.4 Supplier14
2.3.5 Operator15
2.3.6 Comparator15
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 Stream18
2.5.1 Stream簡介19
2.5.2 獲得Stream19
2.5.3 中間操作20
2.5.4 終結操作23
2.6 Optional27
2.6.1 獲得Optional28
2.6.2 Optional的用法28
2.7 小結29
第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的Scope38
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 EL59
3.7 AOP61
3.8 註解工作原理64
3.8.1 BeanPostProcessor64
3.8.2 BeanFactoryPostProcessor66
3.8.3 使用AOP68
3.8.4 組合元註解68
3.9 小結68
第4章 深入Spring Boot69
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 Executor94
4.5.2 Task Scheduler97
4.6 Gradle外掛程式99
4.6.1 依賴99
4.6.2 Spring Boot Starter100
4.6.3 外掛程式任務100
4.7 自定義Starter100
4.7.1 包裝技術庫101
4.7.2 Starter的結構103
4.7.3 autoconfigure模組105
4.7.4 Starter模組107
4.7.5 使用Starter108
4.8 Spring Boot Actuator110
4.8.1 常用端點110
4.8.2 自定義119
4.8.3 使用Prometheus和Grafana監控指標124
4.9 小結128
第5章 Spring Web MVC129
5.1 Spring Web MVC簡介129
5.2 用Spring Boot學習Web MVC129
5.2.1 核心註解129
5.2.2 RESTful服務130
5.2.3 @ControllerAdvice146
5.2.4 @RestControllerAdvice151
5.2.5 JSON定製156
5.2.6 RestTemplate159
5.3 Web MVC配置161
5.3.1 Spring MVC的工作原理161
5.3.2 配置MVC161
5.3.3 Interceptor162
5.3.4 Formatter164
5.3.5 HttpMessageConverter166
5.3.6 方法參數和返回值處理設定169
5.3.7 初始化數據綁定設定176
5.3.8 類型轉換原理與設定176
5.3.9 路徑匹配和內容協商183
5.3.10 JSON188
5.3.11 其他外部屬性配置189
5.4 Servlet容器191
5.4.1 註冊Servlet、Filter和Listener191
5.4.2 配置Servlet容器196
5.5 異步請求202
5.5.1 Servlet 3.0 異步返回202
5.5.2 HTTP Streaming206
5.5.3 HTTP/2212
5.6 小結214
第6章 數據訪問215
6.1 Spring Data Repository215
6.1.1 DDD與Spring Data Repository215
6.1.2 查詢方法218
6.2 關係資料庫——Spring Data JPA218
6.2.1 JPA、Hibernate和Spring Data JPA218
6.2.2 環境準備218
6.2.3 自動配置220
6.2.4 定義聚合221
6.2.5 定義聚合Repository224
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 Elasticsearch252
6.3.1 Elascticsearch簡介252
6.3.2 環境準備252
6.3.3 在Spring Boot中的自動配置253
6.3.4 定義聚合254
6.3.5 定義聚合Repository255
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 Authentication269
7.1.5 Authorization281
7.1.6 Spring Data集成294
7.2 Spring Security實戰295
7.3 OAuth 2.0301
7.3.1 OAuth 2.0 Authorization Server301
7.3.2 OAuth 2.0 Resource Server310
7.3.3 OAuth 2.0 Client317
7.4 小結322
第8章 回響式編程323
8.1 Project Reactor323
8.1.1 Reactive Streams的基礎接口323
8.1.2 Flux和Mono325
8.2 Spring WebFlux327
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 NoSQL334
8.3.1 回響式Elasticsearch335
8.3.2 回響式MongoDB339
8.4 Reactive關係型資料庫:R2DBC342
8.4.1 安裝PostgreSQL343
8.4.2 Spring Boot的自動配置343
8.4.3 示例344
8.5 Reactive Spring Security347
8.5.1 Reactive Spring Security原理347
8.5.2 Spring Boot的自動配置347
8.5.3 示例348
8.6 小結354
第9章 事件驅動355
9.1 JMS355
9.1.1 安裝Apache ActiveMQ Artemis355
9.1.2 新建套用356
9.1.3 Spring Boot的自動配置356
9.1.4 示例356
9.1.5 Topic和Queue358
9.2 RabbitMQ360
9.3 Kafka367
9.4 Websocket374
9.4.1 STOMP Websocket374
9.4.2 Reactive Websocket379
9.5 RSocket382
9.5.1 新建套用382
9.5.2 Spring Boot的自動配置383
9.5.3 示例383
9.6 小結388
第10章 系統集成與批處理389
10.1 Spring Integration389
10.1.1 Spring Integration基礎389
10.1.2 Spring Integration Java DSL391
10.1.3 示例392
10.2 Spring Batch395
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 Cloud405
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 Gateway430
11.2.7 認證授權433
11.3 小結442
第12章 Kubernetes與微服務443
12.1 Kubernetes443
12.1.1 安裝443
12.1.2 Kubernetes基礎知識445
12.1.3 Helm460
12.1.4 DevOps463
12.1.5 安裝Jenkins464
12.1.6 微服務示例465
12.1.7 鏡像倉庫和Dockerfile467
12.1.8 使用Helm打包套用471
12.1.9 Jenkins流程475
12.2 Service Mesh和Istio481
12.2.1 安裝Istio482
12.2.2 微服務示例483
12.3 小結490