從企業級開發到雲原生微服務 : SpringBoot 實戰

從企業級開發到雲原生微服務 : SpringBoot 實戰

作者: 汪雲飛 沈永林 陳曉茜
出版社: 電子工業
出版在: 2020-01-01
ISBN-13: 9787121377921
ISBN-10: 7121377926





內容描述


本書以Spring 5.2和Spring Boot 2.2為基礎,系統地講解了在日常企業級開發和微服務開發中面臨的大部分的問題,如函數式編程、Spring MVC、Spring Data、Spring Security、響應式編程、事件驅動、Spring Integration、Spring Batch、Spring Cloud、Kubernetes 與微服務等。本書內容由淺入深,適合有Java基礎的初級程序員學習。同時,本書還介紹了較深的理論及原理知識,可供中、高級工程師提升使用。本書講解的所有主題都附有實戰案例,讀者可快速將相關技術應用於工作實踐中。


目錄大綱


第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小結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的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小結68
第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 Streaming 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在Spring Boot中的自動配置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 Reactor 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


作者介紹


汪雲飛,開源技術專家,擁有10年以上的JavaEE開發經驗。對開源Java框架(Spring、Hibernate/JPA、Spring Boot)、開源GIS(GeoServer、OpenLayers),開源雲計算解決方案(IaaS:ClouStack、OpenStack;PaaS:Apache Mesos、Deis、Docker)頗有研究。其撰寫的技術博客被大量的閱讀和轉載。




相關書籍

全棧技能修煉:使用 Angular 和 SpringBoot 打造全棧應用

作者 王芃

2020-01-01

The LEGO MINDSTORMS EV3 Idea Book: 181 Simple Machines and Clever Contraptions (Paperback)

作者 Yoshihito Isogawa

2020-01-01

HTML, XHTML, and CSS Bible, 5/e (Paperback)

作者 Steven M. Schafer

2020-01-01