詳解 Spring Boot — 從入門到企業級開發實戰

孫鑫

買這商品的人也買了...

商品描述

本書針對Spring Boot 2.6.x及以上版本,採用理論結合實際的講解方式,每章均配有多個示例,在內容安排上由淺入深,在知識講解上深入淺出,讓讀者輕松掌握多種技術、中間件、框架與Spring Boot的整合開發。最後通過兩個實戰項目,讓讀者在進入企業後可以快速從事基於Spring Boot的企業開發。全書共分為五篇:基礎篇、Web篇、數據訪問篇、企業應用開發篇、項目實戰篇。本書內容全面,涵蓋了常用的技術、中間件與框架;講解深入淺出,讓讀者學有所得。

目錄大綱

目 錄
第1篇基礎篇
第1章 Spring Boot初窺1
1.1 Spring Boot簡介1
1.2 快速掌握Maven 2
1.2.1 下載並安裝Maven 2
1.2.2 認識pom.xml文件4
1.2.3 配置Maven 12
1.2.4 使用Maven和JDK開發Spring Boot應用13
1.3 使用Spring Tool Suite開發Spring Boot應用16
1.3.1 下載並安裝STS 16
1.3.2 配置Maven環境17
1.3.3 開發Spring Boot應用19
1.4 使用IntelliJ IDEA開發Spring Boot應用22
1.4.1 下載並安裝IDEA 22
1.4.2 配置IDEA 23
1.4.3 開發Spring Boot應用25
1.5 小結26
第2章 Spring Boot基礎27
2.1 Spring Boot項目結構剖析27
2.2 編寫控制器29
2.3 熱部署30
2.4 Spring Boot的配置文件33
2.4.1 YAML語法33
2.4.2 配置嵌入式服務器37
2.4.3 關閉啟動時的Banner 40
2.4.4 配置日誌40
2.4.5 使用Profile進行配置43
2.5 外部配置47
2.6 Spring Boot常用註解51
2.6.1 與配置相關的註解52
2.6.2 Spring MVC相關的註解52
2.6.3 組件聲明相關的註解53
2.6.4 依賴注入相關的註解53
2.7 理解starter 53
2.7.1 安裝EditStarters插件54
2.7.2 Spring Boot提供的starter 56
2.8 Spring Boot自動配置原理57
2.9 自定義starter 62
2.9.1 自動配置模塊63
2.9.2 starter模塊70
2.9.3 測試自定義的starter 71
2.10 小結72
第2篇Web篇
第3章 快速掌握Spring MVC 73
3.1 MVC架構模式73
3.2 Spring MVC 74
3.3 Spring MVC自動配置76
3.4 Spring MVC接收請求參數76
3.4.1 準備項目77
3.4.2 接收表單參數81
3.4.3 接收JSON數據82
3.4.4 URL參數83
3.4.5 文件上傳83
3.4.6 請求報頭84
3.4.7 日期類型參數處理85
3.5 控制器方法的返回值85
3.5.1 String 86
3.5.2 ModelAndView 86
3.5.3 Map和Model 87
3.5.4 @ResponseBody註解87
3.5.5 HttpEntity<B>和ResponseEntity<B> 88
3.5.6 void 88
3.6 @ModelAttribute註解89
3.7 URL模式匹配90
3.8 設置上下文路徑90
3.9 小結91
第4章 Thymeleaf模板引擎92
4.1 引入和配置Thymeleaf 92
4.2 準備項目95
4.3 Thymeleaf的語法99
4.3.1 使用文本99
4.3.2 國際化99
4.3.3 標準表達式語法103
4.3.4 設置屬性值113
4.3.5 迭代115
4.3.6 條件判斷118
4.3.7 模板布□ 119
4.3.8 定義□部□量130
4.3.9 屬性優先級130
4.3.10 註釋131
4.3.11 塊級標籤th:block 133
4.3.12 內聯133
4.4 用戶註冊程序137
4.4.1 編寫註冊和註冊成功頁面137
4.4.2 編寫User類139
4.4.3 編寫UserController類139
4.4.4 測試用戶註冊程序140
4.5 小結141
第5章 過濾器、監聽器與□□器142
5.1 Servlet過濾器142
5.1.1 Filter接口143
5.1.2 對響應內容進行壓縮的過濾器144
5.2 Servlet監聽器149
5.3 □□器151
5.4 小結153
第6章 輸入驗證與□□器154
6.1 JSR-303 155
6.2 添加驗證依賴155
6.3 對User的字段添加驗證156
6.4 在註冊頁面中添加驗證錯誤消息的顯示157
6.5 測試輸入數據的驗證159
6.6 自定義驗證器159
6.6.1 自定義註解160
6.6.2 編寫實現ConstraintValidator接口的類160
6.6.3 在User類上使用自定義驗證註解162
6.6.4 在註冊頁面中添加確認密碼輸入項163
6.6.5 測試自定義驗證功能163
6.7 登錄驗證□□器163
6.8 小結168
第7章 異常處理和錯誤處理169
7.1 異常處理169
7.1.1 @ExceptionHandler註解169
7.1.2 全□異常處理171
7.2 自定義錯誤頁面172
7.3 小結176
第8章 文件上傳和下載177
8.1 文件上傳177
8.2 文件下載179
8.3 小結181
第9章 定義RESTful風格的接口182
9.1 什麼是REST 182
9.2 HTTP方法與RESTful接口183
9.3 HTTP響應的狀態代碼185
9.4 狀態代碼的困惑與最佳實踐186
9.5 RESTful API設計原則188
9.6 RESTful API接口的實踐189
9.6.1 項目實例190
9.6.2 使用Postman測試接口194
9.6.3 使用RestTem□□□te測試接口198
9.7 編寫全□錯誤處理器200
9.8 使用Swagger 3.0生成接口文檔204
9.8.1 添加Swagger 3.0.0依賴204
9.8.2 創建Swagger的配置類204
9.8.3 瀏覽自動生成的接口文檔205
9.8.4 使用Swagger的註解明確描述接口207
9.9 小結210
第10章 Spring WebFlux框架211
10.1 響應式編程與Reactive Streams 211
10.1.1 Reactive Streams規範211
10.1.2 Java 9的響應式流實現212
10.2 Spring MVC與Spring WebFlux 215
10.3 認識Reactor 216
10.4 Spring WebFlux的兩種編程模型217
10.4.1 帶註解的控制器方式218
10.4.2 函數式開發方式220
10.5 體驗異步非阻塞227
10.6 服務器發送事件228
10.7 小結229
第3篇數據訪問篇
第11章 使用Spring的JdbcTem□□□te訪問數據230
11.1 認識Spring Data 230
11.2 準備工作232
11.3 使用JdbcTem□□□te 233
11.3.1 準備項目234
11.3.2 StatementCallback 235
11.3.3 PreparedStatementCreator 235
11.3.4 PreparedStatementCallback 236
11.3.5 PreparedStatementSetter 236
11.3.6 讀取數據237
11.3.7 執行存儲過程239
11.3.8 獲取生成的主鍵240
11.3.9 編寫實體類245
11.3.10 編寫DAO類246
11.4 小結249
第12章 使用JPA訪問數據250
12.1 感受JPA 250
12.1.1 準備項目251
12.1.2 配置JPA相關屬性252
12.1.3 編寫實體類252
12.1.4 編寫DAO接口253
12.1.5 編寫單元測試254
12.2 兩種開發方式256
12.3 JPA相關註解256
12.4 Spring Data JPA的核心接口257
12.4.1 Re□□□itory<T,ID>接口258
12.4.2 CrudRe□□□itory<T,ID>接口259
12.4.3 PagingAndSortingRe□□□itory<T,ID>接口259
12.4.4 JPARe□□□itory <T,ID>接口259
12.4.5 JpaSpecificationExecutor <T>接口260
12.5 關聯關係映射261
12.5.1 基於主鍵的一對一關聯映射262
12.5.2 基於外鍵的一對一關聯映射267
12.5.3 一對多關聯映射270
12.5.4 多對多關聯映射274
12.6 使用JPQL進行查詢277
12.7 使用原生SQL語句進行查詢278
12.8 事務279
12.8.1 數據庫事務隔離級別279
12.8.2 事務傳播280
12.8.3 @Transactional註解280
12.8.4 事務邊界281
12.9 項目實際問題的解決281
12.10 小結282
第13章 使用MyBatis訪問數據283
13.1 感受MyBatis 283
13.2 SqlSessionFactory 288
13.3 SqlSession 289
13.3.1 語句執行方法289
13.3.2 立即批量更新方法291
13.3.3 事務控制方法291
13.3.4 本地緩存291
13.3.5 確保SqlSession被關閉292
13.4 使用映射器292
13.5 映射器註解293
13.6 使用註解實現增、刪、改、查296
13.7 關聯關係映射299
13.7.1 一對一關聯映射299
13.7.2 一對多關聯映射301
13.7.3 多對多關聯映射304
13.8 分頁查詢306
13.9 小結309
第14章 使用MongoDB訪問數據310
14.1 下載和安裝MongoDB 310
14.2 MongoDB與關係數據庫的對比312
14.3 增、刪、改、查的實現312
14.4 小結315
第4篇企業應用開發篇
第15章 安全框架Spring Security 316
15.1 快速開始316
15.2 身份驗證318
15.3 表單認證318
15.3.1 自定義表單登錄頁319
15.3.2 對有限資源進行保護321
15.4 前後端分離的登錄處理方式325
15.5 多用戶的認證與授權327
15.5.1 內存用戶的認證和授權327
15.5.2 默認數據庫模型的用戶認證與授權330
15.5.3 自定義數據庫模型的用戶認證與授權332
15.6 JWT 336
15.6.1 什麼是JWT 337
15.6.2 JWT的結構338
15.6.3 使用JWT實現token驗證339
15.7 小結348第16章 Spring Boot與緩存349
16.1 Spring的緩存抽象349
16.2 Spring的緩存註解349
16.2.1 @Cacheable註解350
16.2.2 @CachePut註解352
16.2.3 @CacheEvict註解352
16.2.4 @Caching註解353
16.2.5 @CacheConfig註解353
16.2.6 啟用緩存353
16.3 實例:在Spring Boot項目中應用緩存353
16.4 自定義鍵的生成策略357
16.5 JCache(JSR-107)註解358
16.6 小結359
第17章 Spring Boot集成Redis 360
17.1 Redis簡介360
17.2 Redis的應用場景361
17.3 Redis的安裝361
17.4 Redis數據類型363
17.4.1 string 363
17.4.2 hash 363
17.4.3 list 364
17.4.4 set 364
17.4.5 zset 364
17.5 將Redis用作緩存365
17.6 掌握RedisTem□□□te 369
17.6.1 操作字符串369
17.6.2 操作哈希370
17.6.3 操作列表371
17.6.4 操作集合372
17.6.5 操作有序集合373
17.7 編寫工具類封裝Redis訪問操作374
17.8 自定義RedisTem□□□te序列化方式383
17.9 手動實現Redis數據存儲與讀取385
17.10 小結386
第18章 Spring Boot集成RabbitMQ 387
18.1 面向消息的中間件387
18.2 RabbitMQ簡介388
18.2.1 AMQP 389
18.2.2 常用交換器390
18.3 RabbitMQ的下載與安裝393
18.3.1 安裝Erlang/OTP軟件庫393
18.3.2 安裝RabbitMQ 393
18.3.3 添加可視化插件393
18.3.4 管理界面393
18.4 RabbitMQ客戶端API介紹394
18.4.1 連接RabbitMQ服務器395
18.4.2 創建信道395
18.4.3 聲明交換器395
18.4.4 聲明隊列396
18.4.5 綁定隊列397
18.4.6 發布消息398
18.4.7 消費消息399
18.4.8 消息確認與拒絕401
18.4.9 關閉連接403
18.5 六種應用模式403
18.5.1 Simple 403
18.5.2 工作隊列404
18.5.3 發布/訂閱408
18.5.4 路由410
18.5.5 主題412
18.5.6 RPC 415
18.6 Spring Boot對RabbitMQ的支持420
18.6.1 發送消息420
18.6.2 接收消息421
18.6.3 使用Spring AMQP實現六種應用模式421
18.7 延遲消息隊列436
18.7.1 安裝延遲消息插件436
18.7.2 訂單支付超時處理案例436
18.8 小結440
第19章 集成Elasticsearch,提供搜索服務441
19.1 Elasticsearch的下載與安裝441
19.1.1 安裝Elasticsearch 441
19.1.2 安裝Web前端elasticsearch-head 442
19.1.3 配置允許跨域442
19.2 Elasticsearch的基本概念443
19.3 Spring Boot對Elasticsearch的支持444
19.3.1 映射註解445
19.3.2 ElasticsearchRestTem□□□te 446
19.3.3 ElasticsearchRe□□□itory 450
19.4 小結455
第5篇項目實戰篇
第20章 電子商城項目實戰456
20.1 數據庫設計456
20.2 創建項目458
20.3 項目結構458
20.4 項目配置459
20.5 分類模塊460
20.6 圖書模塊與□□模塊464
20.7 用戶模塊475
20.8 安全實現478
20.9 使用JWT實現token驗證483
20.10 全□錯誤處理器485
20.11 小結487
第21章 商品秒殺系統488
21.1 功能描述488
21.2 數據庫設計490
21.3 創建項目491
21.4 項目結構491
21.5 項目配置492
21.6 配置Redis和RabbitMQ 493
21.7 數據訪問層494
21.7.1 實體類494
21.7.2 DAO接口496
21.8 業務邏輯層(服務層) 496
21.9 表示層(Web層) 501
21.9.1 控制器501
21.9.2 頁面503
21.10 小結506
第22章 部署Spring Boot應用程序507
22.1 JAR包的打包方式與執行507
22.2 打包成WAR文件並部署到Tomcat服務器上508
22.3 小結510