Spring Boot編程思想(核心篇)

Spring Boot編程思想(核心篇)

《Spring Boot編程思想(核心篇)》以Spring Boot 2.0為討論的主線,討論的範圍將涵蓋 Spring Boot 1.x的所有版本,以及所關聯的Spring Framework版本,致力於場景分析、 系統學習、 重視規範、 源碼解讀。

基本介紹

  • 書名:Spring Boot編程思想(核心篇)
  • 作者:小馬哥
  • ISBN:978-7-121-36039-8
  • 頁數:628
  • 定價:118
  • 出版社:電子工業出版社
  • 出版時間:2019-04
  • 裝幀:平裝
  • 開本:16
內容提要,目錄,作者簡介,

內容提要

本書是《Spring Boot編程思想》的核心篇,開篇總覽Spring Boot核心特性,接著討論自動裝配(Auto-Configuration)與SpringApplication。《Spring Boot編程思想(核心篇)》的討論以Spring Boot為中心,議題發散至Spring技術棧、JSR及Java。希望透過全局的視角,幫助讀者了解Spring Boot變遷的歷程;經過多方的比較,幫助讀者理解Spring Boot特性的原理;整合標準的規範,幫助讀者掌握Spring Boot設計的哲學。

目錄

第1部分 總覽Spring Boot
第1章 初覽Spring Boot 2
1.1 Spring Framework時代 2
1.2 Spring Boot簡介 3
1.3 Spring Boot的特性 5
1.4 準備運行環境 5
1.4.1 裝配JDK 8 5
1.4.2 裝配Maven 6
1.4.3 裝配IDE(集成開發環境) 8
第2章 理解獨立的Spring套用 9
2.1 創建Spring Boot套用 10
2.1.1 命令行方式創建Spring Boot套用 11
2.1.2 圖形化界面創建Spring Boot套用 21
2.1.3 創建Spring Boot套用可執行JAR 29
2.2 運行Spring Boot套用 31
2.2.1 執行Spring Boot套用可執行JAR 32
2.2.2 Spring Boot套用可執行JAR資源結構 32
2.2.3 FAT JAR和WAR執行模組——spring-boot-loader 36
2.2.4 JarLauncher的實現原理 40
第3章 理解固化的Maven依賴 58
3.1 spring-boot-starter-parent與spring-boot-dependencies簡介 58
3.2 理解spring-boot-starter-parent與spring-boot- dependencies 61
第4章 理解嵌入式Web容器 70
4.1 嵌入式Servlet Web容器 71
4.1.1 Tomcat作為嵌入式Servlet Web容器 72
4.1.2 Jetty作為嵌入式Servlet Web容器 77
4.1.3 Undertow作為嵌入式Servlet Web容器 80
4.2 嵌入式Reactive Web容器 82
4.2.1 UndertowServletWebServer作為嵌入式Reactive Web容器 82
4.2.2 UndertowWebServer作為嵌入式Reactive Web容器 84
4.2.3 WebServerInitializedEvent 91
4.2.4 Jetty作為嵌入式Reactive Web容器 93
4.2.5 Tomcat作為嵌入式Reactive Web容器 94
第5章 理解自動裝配 96
5.1 理解@SpringBootApplication註解語義 97
5.2 @SpringBootApplication屬性別名 103
5.3 @SpringBootApplication標註非引導類 107
5.4 @EnableAutoConfiguration激活自動裝配 108
5.5 @SpringBootApplication“繼承”@Configuration CGLIB提升特性 110
5.6 理解自動配置機制 112
5.7 創建自動配置類 116
第6章 理解Production- Ready特性 119
6.1 理解Production-Ready一般性定義 120
6.2 理解Spring Boot Actuator 123
6.3 Spring Boot Actuator Endpoints 124
6.4 理解“外部化配置 129
6.5 理解“規約大於配置” 132
6.6 小馬哥有話說 134
6.6.1 Spring Boot作為微服務中間件 134
6.6.2 Spring Boot作為Spring Cloud基礎設施 135
6.7 下一站:走向自動裝配 135
第2部分 走向自動裝配
第7章 走向註解驅動編程(Annotation-Driven) 138
7.1 註解驅動發展史 138
7.1.1 註解驅動啟蒙時代:Spring Framework 1.x 138
7.1.2 註解驅動過渡時代:Spring Framework 2.x 139
7.1.3 註解驅動黃金時代:Spring Framework 3.x 142
7.1.4 註解驅動完善時代:Spring Framework 4.x 146
7.1.5 註解驅動當下時代:Spring Framework 5.x 151
7.2 Spring核心註解場景分類 152
7.3 Spring註解編程模型 154
7.3.1 元註解(Meta-Annotations) 154
7.3.2 Spring模式註解(Stereotype Annotations) 155
7.3.3 Spring組合註解(Composed Annotations) 187
7.3.4 Spring註解屬性別名和覆蓋(Attribute Aliases and Overrides) 195
第8章 Spring註解驅動設計模式 225
8.1 Spring @Enable模組驅動 225
8.1.1 理解@Enable模組驅動 225
8.1.2 自定義@Enable模組驅動 226
8.1.3 @Enable模組驅動原理 236
8.2 Spring Web自動裝配 250
8.2.1 理解Web自動裝配 250
8.2.2 自定義Web自動裝配 254
8.2.3 Web自動裝配原理 258
8.3 Spring條件裝配 270
8.3.1 理解配置條件裝配 271
8.3.2 自定義配置條件裝配 274
8.3.3 配置條件裝配原理 277
第9章 Spring Boot自動裝配 292
9.1 理解Spring Boot自動裝配 295
9.1.1 理解@EnableAutoConfiguration 296
9.1.2 優雅地替換自動裝配 298
9.1.3 失效自動裝配 298
9.2 Spring Boot自動裝配原理 299
9.2.1 @EnableAutoConfiguration讀取候選裝配組件 301
9.2.2 @EnableAutoConfiguration排除自動裝配組件 305
9.2.3 @EnableAutoConfiguration過濾自動裝配組件 307
9.2.4 @EnableAutoConfiguration自動裝配事件 313
9.2.5 @EnableAutoConfiguration自動裝配生命周期 317
9.2.6 @EnableAutoConfiguration排序自動裝配組件 324
9.2.7 @EnableAutoConfiguration自動裝配BasePackages 332
9.3 自定義Spring Boot自動裝配 337
9.3.1 自動裝配Class命名的潛規則 338
9.3.2 自動裝配package命名的潛規則 338
9.3.3 自定義Spring Boot Starter 340
9.4 Spring Boot條件化自動裝配 346
9.4.1 Class條件註解 347
9.4.2 Bean條件註解 358
9.4.3 屬性條件註解 370
9.4.4 Resource條件註解 376
9.4.5 Web套用條件註解 391
9.4.6 Spring表達式條件註解 397
9.5 小馬哥有話說 401
9.6 下一站:理解SpringApplication 402
第3部分 理解SpringApplication
第10章 SpringApplication初始化階段 405
10.1 SpringApplication構造階段 405
10.1.1 理解SpringApplication主配置類 406
10.1.2 SpringApplication的構造過程 410
10.1.3 推斷Web套用類型 411
10.1.4 載入Spring套用上下文初始化器(ApplicationContextInitializer) 412
10.1.5 載入Spring套用事件監聽器(ApplicationListener) 415
10.1.6 推斷套用引導類 416
10.2 SpringApplication配置階段 417
10.2.1 自定義SpringApplication 417
10.2.2 調整SpringApplication設定 417
10.2.3 增加SpringApplication配置源 420
10.2.4 調整Spring Boot外部化配置 423
第11章 SpringApplication運行階段 425
11.1 SpringApplication準備階段 425
11.1.1 理解SpringApplicationRunListeners 426
11.1.2 理解SpringApplicationRunListener 428
11.1.3 理解Spring Boot事件 431
11.1.4 理解Spring事件/監聽機制 432
11.1.5 理解Spring Boot事件/監聽機制 492
11.1.6 裝配ApplicationArguments 509
11.1.7 準備ConfigurableEnvironment 512
11.1.8 創建Spring套用上下文(ConfigurableApplicationContext) 512
11.1.9 Spring套用上下文運行前準備 516
11.2 Spring套用上下文啟動階段 537
11.3 Spring套用上下文啟動後階段 539
11.3.1 afterRefresh方法簽名的變化 540
11.3.2 afterRefresh方法語義的變化 541
11.3.3 Spring Boot事件ApplicationStartedEvent語義的變化 543
11.3.4 執行CommandLineRunner和ApplicationRunner 548
第12章 SpringApplication結束階段 550
12.1 SpringApplication正常結束 550
12.2 SpringApplication異常結束 555
12.2.1 Spring Boot異常處理 556
12.2.2 錯誤分析報告器——FailureAnalysisReporter 562
12.2.3 自定義實現FailureAnalyzer和FailureAnalysisReporter 564
12.2.4 Spring Boot 2.0重構handleRunFailure和reportFailure方法 566
12.2.5 Spring Boot 2.0的SpringBootExceptionReporter接口 567
第13章 Spring Boot套用退出 571
13.1 Spring Boot套用正常退出 572
13.1.1 ExitCodeGenerator Bean生成退出碼 572
13.1.2 ExitCodeGenerator Bean退出碼使用場景 576
13.2 Spring Boot套用異常退出 580
13.2.1 ExitCodeGenerator異常使用場景 582
13.2.2 ExitCodeExceptionMapper Bean映射異常與退出碼 587
13.2.3 退出碼用於SpringApplication異常結束 589
13.3 小馬哥有話說 594
13.4 下一站:運維篇 596

作者簡介

小馬哥(mercyblitz)
在“江湖”上,大家親切地稱我為“小馬哥”,我做公益,也做生意;在社區中,我又以 mercyblitz的身份出沒在眾多開源項目中,“mercy”符合我的性格,“blitz”說明我的風格。

相關詞條

熱門詞條

聯絡我們