Spring Boot實踐

Somnath Musib

商品描述

本書是一本實戰導向的Spring Boot開發教程。全書以現實問題為導向,從基本功能到技巧,*地介紹Spring Boot開發技術,包括引導應用程序、數據庫通信、微服務等內容,以及Spring Boot與RESTful API、WebSocket、RSocket、Kubernetes、Kotlin、GraalVM配合使用的方法。本書凝結了作者多年的Spring Boot開發經驗,可以在Spring數據、Spring*性,以及其他有關Spring的核心技術與技巧方面為讀者提供指導。 本書適合具備一定Spring基礎的Java*和軟件工程師閱讀。

作者簡介

索姆納特·穆西布(Somnath Musib)是一位擁有十多年開發經驗的多語言開發人員。他從2015年開始使用Spring Boot,並積極參與Spring Boot應用程序的開發。Somnath熱愛教學,喜歡以通俗易懂的方式向人們解釋覆雜的話題。在業餘時間,他喜歡在Medium博客上撰寫一些關於技術的文章。

目錄大綱

第1部分

第1章 啟動Spring Boot 3
1.1 Spring Boot介紹 3
 1.1.1 為什麼選擇Spring Boot 3
 1.1.2 什麼是Spring Boot 4
 1.1.3 Spring Boot的核心特性 5
 1.1.4 Spring Boot組件 6
1.2 代碼示例 8
 1.2.1 Maven與Gradle 8
 1.2.2 Java與Kotlin 8
 1.2.3 數據庫支持 8
 1.2.4 Lombok 8
1.3 Spring Boot入門 9
 1.3.1 *個Spring Boot項目 9
 1.3.2 Spring Boot項目的結構 9
 1.3.3 創建可執行的JAR文件 17
 1.3.4 探索JAR文件 18
 1.3.5 關閉Spring Boot應用程序 18
1.4 Spring Boot的附加概念 19
 1.4.1 Spring Boot的啟動事件 19
 1.4.2 監聽Spring Boot應用程序中的事件 20
 1.4.3 自定義Spring Boot啟動器 22
 1.4.4 自定義自動配置 22
 1.4.5 故障分析器 22
 1.4.6 Spring Boot執行器 23
 1.4.7 Spring Boot開發人員
工具 24
小結 24

第2部分

第2章 常見的Spring Boot任務 27
2.1 管理配置 27
 2.1.1 使用SpringApplication類 28
 2.1.2 使用@PropertySource 28
 2.1.3 配置數據文件 30
 2.1.4 操作系統環境變量 33
2.2 使用@ConfigurationProperties創建自定義屬性 34
 2.2.1 技巧:在Spring Boot應用程序中使用@ConfigurationProperties來自定義屬性 35
2.3 在Spring Boot應用程序啟動時執行代碼 40
 2.3.1 技巧:使用CommandLineRunner在Spring Boot應用程序啟動時執行代碼 40
2.4 在Spring Boot應用程序中自定義日誌 44
 2.4.1 技巧:了解和自定義Spring Boot應用程序中的默認日誌記錄 45
 2.4.2 技巧:在Spring Boot應用程序中使用Log4j2配置日誌 48
2.5 使用Bean Validation驗證用戶數據 52
 2.5.1 技巧:使用內置的Bean Validation註解來驗證Spring Boot應用程序中的業務實體 52
 2.5.2 技巧:定義和使用自定義的Bean Validation註解來驗證Spring Boot應用程序中的POJO 55
小結 60

第3章 使用Spring Data訪問數據庫 61
3.1 Spring Data介紹 61
 3.1.1 為什麼選擇Spring Data 62
 3.1.2 Spring Data模塊 63
3.2 在Spring Boot應用程序中配置數據庫 64
 3.2.1 技巧:在Spring Boot應用程序中配置關系數據庫 64
 3.2.2 技巧:在Spring Boot應用程序中配置MongoDB數據庫 68
 3.2.3 技巧:在Spring Boot應用程序中初始化關系數據庫模式 71
3.3 了解CrudRepository接口 75
 3.3.1 技巧:使用Spring Data JPA管理關系數據庫中的域對象 76
 3.3.2 技巧:使用Spring Data JPA自定義Spring Data存儲庫來管理關系數據庫中的域對象 81
3.4 使用Spring Data從數據庫中檢索數據 83
 3.4.1 定義查詢方法 83
 3.4.2 技巧:在Spring Data JPA中自定義查詢方法來從關系數據庫中檢索域對象 84
 3.4.3 使用PagingAndSortingRepository實現分頁 87
 3.4.4 技巧:使用PagingAndSortingRepository接口對數據進行分頁和排序 87
 3.4.5 使用@NamedQuery指定查詢 90
 3.4.6 技巧:在Spring Data JPA中使用命名查詢來管理關系數據庫中的域對象 90
3.5 使用@Query指定查詢 92
 3.5.1 技巧:在Spring Data JPA中使用@Query註解從關系數據庫中查詢域對象 93
3.6 在Spring Data JPA中使用Criteria API 96
 3.6.1 技巧:在Spring Data JPA中使用Criteria API來管理關系數據庫中的域對象 96
3.7 在Spring Data JPA中使用QueryDSL 98
 3.7.1 技巧:在Spring Data JPA中使用QueryDSL來管理關系數據庫中的域對象 99
3.8 管理域對象關系 103
 3.8.1 技巧:使用Spring Data JPA在關系數據庫中管理具有多對多關系的域對象 105
小結 113

第4章 Spring Boot自動配置和執行器 114
4.1 了解Spring Boot自動配置 114
 4.1.1 理解@Conditional註解 116
 4.1.2 深入了解Spring Boot自動配置 118
4.2 使用Spring Boot DevTools 121
 4.2.1 屬性默認值 121
 4.2.2 自動重啟 121
 4.2.3 實時重新加載 122
4.3 創建自定義故障分析器 122
 4.3.1 技巧:自定義Spring Boot故障分析器 122
4.4 Spring Boot Actuator 126
 4.4.1 技巧:在Spring Boot應用程序中配置Spring Boot Actuator 126
 4.4.2 了解Spring Boot Actuator端點 127
 4.4.3 管理Spring Boot Actuator端點 129
 4.4.4 health端點深度剖析 131
 4.4.5 自定義Spring Boot HealthIndicator 134
 4.4.6 技巧:自定義Spring Boot執行器HealthIndicator 134
4.5 info端點深度剖析 137
 4.5.1 技巧:配置Spring Boot Actuator info端點 137
 4.5.2 技巧:配置自定義的InfoContributor來為Spring Boot Actuator端點提供自定義的應用程序信息 141
4.6 自定義Spring Boot Actuator端點 142
 4.6.1 技巧:自定義Spring Boot Actuator端點 143
 4.6.2 Spring Boot Actuator指標 148
 4.6.3 自定義指標 151
 4.6.4 使用Prometheus和Grafana的指標儀表板 156
小結 158

第5章 Spring Boot應用程序* 159
5.1 Spring Security介紹 159
5.2 在Spring Boot應用程序中使用Spring Security 161
 5.2.1 技巧:在Spring Boot應用程序中使用Spring Security保護應用程序* 161
 5.2.2 Filter、FilterChain和Spring Security 165
 5.2.3 Spring Security架構 167
 5.2.4 用戶認證 169
 5.2.5 Spring Security自動配置 172
5.3 使用Spring Security 174
 5.3.1 技巧:在Spring Boot應用程序中自定義Spring Security登錄頁面 174
 5.3.2 技巧:在Spring Boot應用程序中使用Spring Security進行內存用戶認證 179
 5.3.3 技巧:在Spring Boot應用程序中使用Spring Security配置JDBC用戶認證 185
 5.3.4 技巧:在Spring Boot應用程序中使用自定義的UserDetailsService執行JDBC用戶認證 189
 5.3.5 技巧:在Spring Boot應用程序中實現LDAP用戶認證 194
 5.3.6 技巧:在Spring Boot應用程序中實現HTTP基本認證 199
小結 202

第6章 Spring Security**功能 203
6.1 在Spring Boot應用程序中啟用HTTPS 204
 6.1.1 技巧:在Spring Boot應用程序中啟用HTTPS 204
6.2 使用Spring Cloud Vault保護密鑰 208
 6.2.1 技巧:在Spring Boot應用程序中使用HashiCorp Vault管理密鑰 208
6.3 實現用戶註冊 211
 6.3.1 技巧:在Spring Boot應用程序中使用Spring Security實現用戶註冊 211
6.4 在用戶註冊時驗證電子郵件地址 219
 6.4.1 技巧:在Spring Boot應用程序中驗證用戶電子郵件地址 219
6.5 控制登錄失敗次數 228
 6.5.1 技巧:控制Spring Boot應用程序中的登錄失敗次數 228
6.6 實現Remember Me功能 234
 6.6.1 技巧:使用Spring Security在Spring Boot應用程序中啟用Remember Me功能 234
6.7 實現reCAPTCHA 237
 6.7.1 技巧:使用Spring Security在Spring Boot應用程序中啟用Google的reCAPTCHA 237
6.8 使用Google Authenticator啟用雙因素身份驗證 241
 6.8.1 技巧:在Spring Boot應用程序中啟用雙因素身份驗證 242
6.9 使用OAuth2進行身份驗證 252
 6.9.1 技巧:在Spring Boot應用程序中啟用Google賬戶登錄 252
6.10 保護Actuator端點 257
 6.10.1 技巧:保護Spring Boot Actuator端點 257
小結 259

第7章 使用Spring Boot開發RESTful Web服務 260
7.1 使用Spring Boot開發RESTful API 260
 7.1.1 技巧:使用Spring Boot開發RESTful API 261
7.2 在Spring Boot RESTful API中管理異常 268
 7.2.1 技巧:在RESTful API中處理異常 269
7.3 測試RESTful API 272
 7.3.1 技巧:在Spring Boot應用程序中測試RESTful API 273
7.4 記錄RESTful API 278
 7.4.1 技巧:使用OpenAPI記錄RESTful API 278
7.5 RESTful API版本控制 284
 7.5.1 技巧:在RESTful API中實現版本控制 284
7.6 保護RESTful API 294
 7.6.1 技巧:使用JWT授權RESTful API請求 295
小結 303

第3部分

第8章 響應式Spring Boot應用程序開發 307
8.1 響應式編程簡介 307
 8.1.1 背壓 310
 8.1.2 響應式編程的好處 311
8.2 了解Reactor項目 311
8.3 Spring WebFlux 314
 8.3.1 技巧:使用帶註解的控制器來開發響應式RESTful API 314
 8.3.2 技巧:基於函數式端點來開發響應式RESTful API 322
8.4 測試響應式應用程序 327
 8.4.1 技巧:使用WebClient構建API客戶端 327
8.5 RSocket簡介 333
 8.5.1 技巧:使用RSocket開發Spring Boot應用程序 334
8.6 WebSocket簡介 342
 8.6.1 技巧:使用WebSocket構建Spring Boot應用程序 344
小結 350

第4部分

第9章 部署Spring Boot應用程序 353
9.1 將Spring Boot應用程序打包成可執行JAR文件並運行 354
 9.1.1 技巧:將Spring Boot應用程序打包成可執行JAR文件並運行 354
9.2 將Spring Boot應用程序以WAR包格式部署到WildFly應用程序服務器 359
 9.2.1 技巧:將Spring Boot應用程序打包為WAR文件並部署到WildFly應用程序服務器中 360
9.3 在Cloud Foundry中部署Spring Boot應用程序 368
 9.3.1 技巧:將Spring Boot應用程序部署到Cloud Foundry 369
9.4 在Heroku中部署Spring Boot應用程序 372
 9.4.1 技巧:在Heroku中部署Spring Boot應用程序 372
9.5 將Spring Boot應用程序部署到Docker容器中運行 374
 9.5.1 技巧:創建容器鏡像並在容器中運行Spring Boot應用程序 376
9.6 在Kubernetes集群中部署Spring Boot應用程序 380
 9.6.1 技巧:在Kubernetes集群中部署Spring Boot應用程序 381
9.7 在Red Hat OpenShift中部署Spring Boot應用程序 385
 9.7.1 技巧:在Red Hat OpenShift平臺上部署Spring Boot應用程序 385
小結 388

第5部分

第10章 在Spring Boot中使用Kotlin、原生鏡像和GraphQL 391
10.1 在Spring Boot項目中 使用Kotlin 391
 10.1.1 技巧:使用Kotlin開發Spring Boot應用程序 392
 10.1.2 技巧:使用Spring Security保護Spring Boot Kotlin應用程序 398
10.2 Spring Native介紹 402
 10.2.1 GraalVM簡介 402
 10.2.2 GraalVM原生鏡像 403
 10.2.3 Spring Boot原生鏡像 404
 10.2.4 技巧:使用buildpacks生成Spring Boot原生鏡像 404
 10.2.5 技巧:使用Maven插件生成Spring Boot原生鏡像 409
 10.2.6 理解Spring AOT Maven插件 411
10.3 在Spring Boot項目中 使用GraphQL 412
 10.3.1 REST的問題 412
 10.3.2 GraphQL簡介 413
 10.3.3 在Spring Boot項目中 使用GraphQL 415
 10.3.4 技巧:在Spring Boot應用 程序中開發GraphQL API 415
 10.3.5 技巧:在Spring Boot應用 程序中使用WebSocket開發GraphQL API 429
小結 431

附錄A 生成和構建Spring Boot項目 432
附錄B Spring MVC和Thymeleaf模板引擎 462

最後瀏覽商品 (1)