詳解Spring Boot——從入門到企業(yè)級(jí)開發(fā)實(shí)戰(zhàn)
定 價(jià):129 元
叢書名:孫鑫精品圖書系列
- 作者:孫鑫
- 出版時(shí)間:2022/8/1
- ISBN:9787121439841
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:524
- 紙張:
- 版次:01
- 開本:16開
本書針對Spring Boot 2.6.x及以上版本,采用理論結(jié)合實(shí)際的講解方式,每章均配有多個(gè)示例,在內(nèi)容安排上由淺入深,在知識(shí)講解上深入淺出,讓讀者輕松掌握多種技術(shù)、中間件、框架與Spring Boot的整合開發(fā)。最后通過兩個(gè)實(shí)戰(zhàn)項(xiàng)目,讓讀者在進(jìn)入企業(yè)后可以快速從事基于Spring Boot的企業(yè)開發(fā)。全書共分為五篇:基礎(chǔ)篇、Web篇、數(shù)據(jù)訪問篇、企業(yè)應(yīng)用開發(fā)篇、項(xiàng)目實(shí)戰(zhàn)篇。本書內(nèi)容全面,涵蓋了常用的技術(shù)、中間件與框架;講解深入淺出,讓讀者學(xué)有所得。
孫鑫,國內(nèi)IT技術(shù)和教育專家,2009年中國教育杰出人物。具有20多年的軟件開發(fā)和教育培訓(xùn)經(jīng)驗(yàn),精通多種程序語言和技術(shù)架構(gòu)。2004年曾推出“VC++深入編程”和“Java無難事”教學(xué)視頻,引起了強(qiáng)烈的反響,在網(wǎng)絡(luò)上掀起了一股視頻教學(xué)的風(fēng)潮,數(shù)十萬名學(xué)員通過這兩套視頻走上了軟件開發(fā)的道路。作者從2006年開始,相繼出版了多本暢銷技術(shù)專著,包括《Java無難事》《Java Web開發(fā)詳解》 《VC++深入詳解》《Struts 2深入詳解》《Servlet/JSP深入詳解》《XML、XML Schema、XSLT 2.0和XQuery開發(fā)詳解 》《HTML5、CSS和JavaScript開發(fā)》《Vue.js從入門到實(shí)戰(zhàn)》。目錄
目 錄
第1篇 基礎(chǔ)篇
第1章 Spring Boot初窺 1
1.1 Spring Boot簡介 1
1.2 快速掌握Maven 2
1.2.1 下載并安裝Maven 2
1.2.2 認(rèn)識(shí)pom.xml文件 4
1.2.3 配置Maven 12
1.2.4 使用Maven和JDK開發(fā)Spring Boot應(yīng)用 13
1.3 使用Spring Tool Suite開發(fā)Spring Boot應(yīng)用 16
1.3.1 下載并安裝STS 16
1.3.2 配置Maven環(huán)境 17
1.3.3 開發(fā)Spring Boot應(yīng)用 19
1.4 使用IntelliJ IDEA開發(fā)Spring Boot應(yīng)用 22
1.4.1 下載并安裝IDEA 22
1.4.2 配置IDEA 23
1.4.3 開發(fā)Spring Boot應(yīng)用 25
1.5 小結(jié) 26
第2章 Spring Boot基礎(chǔ) 27
2.1 Spring Boot項(xiàng)目結(jié)構(gòu)剖析 27
2.2 編寫控制器 29
2.3 熱部署 30
2.4 Spring Boot的配置文件 33
2.4.1 YAML語法 33
2.4.2 配置嵌入式服務(wù)器 37
2.4.3 關(guān)閉啟動(dòng)時(shí)的Banner 40
2.4.4 配置日志 40
2.4.5 使用Profile進(jìn)行配置 43
2.5 外部配置 47
2.6 Spring Boot常用注解 51
2.6.1 與配置相關(guān)的注解 52
2.6.2 Spring MVC相關(guān)的注解 52
2.6.3 組件聲明相關(guān)的注解 53
2.6.4 依賴注入相關(guān)的注解 53
2.7 理解starter 53
2.7.1 安裝EditStarters插件 54
2.7.2 Spring Boot提供的starter 56
2.8 Spring Boot自動(dòng)配置原理 57
2.9 自定義starter 62
2.9.1 自動(dòng)配置模塊 63
2.9.2 starter模塊 70
2.9.3 測試自定義的starter 71
2.10 小結(jié) 72
第2篇 Web篇
第3章 快速掌握Spring MVC 73
3.1 MVC架構(gòu)模式 73
3.2 Spring MVC 74
3.3 Spring MVC自動(dòng)配置 76
3.4 Spring MVC接收請求參數(shù) 76
3.4.1 準(zhǔn)備項(xiàng)目 77
3.4.2 接收表單參數(shù) 81
3.4.3 接收J(rèn)SON數(shù)據(jù) 82
3.4.4 URL參數(shù) 83
3.4.5 文件上傳 83
3.4.6 請求報(bào)頭 84
3.4.7 日期類型參數(shù)處理 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 設(shè)置上下文路徑 90
3.9 小結(jié) 91
第4章 Thymeleaf模板引擎 92
4.1 引入和配置Thymeleaf 92
4.2 準(zhǔn)備項(xiàng)目 95
4.3 Thymeleaf的語法 99
4.3.1 使用文本 99
4.3.2 國際化 99
4.3.3 標(biāo)準(zhǔn)表達(dá)式語法 103
4.3.4 設(shè)置屬性值 113
4.3.5 迭代 115
4.3.6 條件判斷 118
4.3.7 模板布局 119
4.3.8 定義局部變量 130
4.3.9 屬性優(yōu)先級(jí) 130
4.3.10 注釋 131
4.3.11 塊級(jí)標(biāo)簽th:block 133
4.3.12 內(nèi)聯(lián) 133
4.4 用戶注冊程序 137
4.4.1 編寫注冊和注冊成功頁面 137
4.4.2 編寫User類 139
4.4.3 編寫UserController類 139
4.4.4 測試用戶注冊程序 140
4.5 小結(jié) 141
第5章 過濾器、監(jiān)聽器與攔截器 142
5.1 Servlet過濾器 142
5.1.1 Filter接口 143
5.1.2 對響應(yīng)內(nèi)容進(jìn)行壓縮的過濾器 144
5.2 Servlet監(jiān)聽器 149
5.3 攔截器 151
5.4 小結(jié) 153
第6章 輸入驗(yàn)證與攔截器 154
6.1 JSR-303 155
6.2 添加驗(yàn)證依賴 155
6.3 對User的字段添加驗(yàn)證 156
6.4 在注冊頁面中添加驗(yàn)證錯(cuò)誤消息的顯示 157
6.5 測試輸入數(shù)據(jù)的驗(yàn)證 159
6.6 自定義驗(yàn)證器 159
6.6.1 自定義注解 160
6.6.2 編寫實(shí)現(xiàn)ConstraintValidator接口的類 160
6.6.3 在User類上使用自定義驗(yàn)證注解 162
6.6.4 在注冊頁面中添加確認(rèn)密碼輸入項(xiàng) 163
6.6.5 測試自定義驗(yàn)證功能 163
6.7 登錄驗(yàn)證攔截器 163
6.8 小結(jié) 168
第7章 異常處理和錯(cuò)誤處理 169
7.1 異常處理 169
7.1.1 @ExceptionHandler注解 169
7.1.2 全局異常處理 171
7.2 自定義錯(cuò)誤頁面 172
7.3 小結(jié) 176
第8章 文件上傳和下載 177
8.1 文件上傳 177
8.2 文件下載 179
8.3 小結(jié) 181
第9章 定義RESTful風(fēng)格的接口 182
9.1 什么是REST 182
9.2 HTTP方法與RESTful接口 183
9.3 HTTP響應(yīng)的狀態(tài)代碼 185
9.4 狀態(tài)代碼的困惑與最佳實(shí)踐 186
9.5 RESTful API設(shè)計(jì)原則 188
9.6 RESTful API接口的實(shí)踐 189
9.6.1 項(xiàng)目實(shí)例 190
9.6.2 使用Postman測試接口 194
9.6.3 使用RestTemplate測試接口 198
9.7 編寫全局錯(cuò)誤處理器 200
9.8 使用Swagger 3.0生成接口文檔 204
9.8.1 添加Swagger 3.0.0依賴 204
9.8.2 創(chuàng)建Swagger的配置類 204
9.8.3 瀏覽自動(dòng)生成的接口文檔 205
9.8.4 使用Swagger的注解明確描述接口 207
9.9 小結(jié) 210
第10章 Spring WebFlux框架 211
10.1 響應(yīng)式編程與Reactive Streams 211
10.1.1 Reactive Streams規(guī)范 211
10.1.2 Java 9的響應(yīng)式流實(shí)現(xiàn) 212
10.2 Spring MVC與Spring WebFlux 215
10.3 認(rèn)識(shí)Reactor 216
10.4 Spring WebFlux的兩種編程模型 217
10.4.1 帶注解的控制器方式 218
10.4.2 函數(shù)式開發(fā)方式 220
10.5 體驗(yàn)異步非阻塞 227
10.6 服務(wù)器發(fā)送事件 228
10.7 小結(jié) 229
第3篇 數(shù)據(jù)訪問篇
第11章 使用Spring的JdbcTemplate訪問數(shù)據(jù) 230
11.1 認(rèn)識(shí)Spring Data 230
11.2 準(zhǔn)備工作 232
11.3 使用JdbcTemplate 233
11.3.1 準(zhǔn)備項(xiàng)目 234
11.3.2 StatementCallback 235
11.3.3 PreparedStatementCreator 235
11.3.4 PreparedStatementCallback 236
11.3.5 PreparedStatementSetter 236
11.3.6 讀取數(shù)據(jù) 237
11.3.7 執(zhí)行存儲(chǔ)過程 239
11.3.8 獲取生成的主鍵 240
11.3.9 編寫實(shí)體類 245
11.3.10 編寫DAO類 246
11.4 小結(jié) 249
第12章 使用JPA訪問數(shù)據(jù) 250
12.1 感受JPA 250
12.1.1 準(zhǔn)備項(xiàng)目 251
12.1.2 配置JPA相關(guān)屬性 252
12.1.3 編寫實(shí)體類 252
12.1.4 編寫DAO接口 253
12.1.5 編寫單元測試 254
12.2 兩種開發(fā)方式 256
12.3 JPA相關(guān)注解 256
12.4 Spring Data JPA的核心接口 257
12.4.1 Repository<T,ID>接口 258
12.4.2 CrudRepository<T,ID>接口 259
12.4.3 PagingAndSortingRepository<T,ID>接口 259
12.4.4 JPARepository <T,ID>接口 259
12.4.5 JpaSpecificationExecutor <T>接口 260
12.5 關(guān)聯(lián)關(guān)系映射 261
12.5.1 基于主鍵的一對一關(guān)聯(lián)映射 262
12.5.2 基于外鍵的一對一關(guān)聯(lián)映射 267
12.5.3 一對多關(guān)聯(lián)映射 270
12.5.4 多對多關(guān)聯(lián)映射 274
12.6 使用JPQL進(jìn)行查詢 277
12.7 使用原生SQL語句進(jìn)行查詢 278
12.8 事務(wù) 279
12.8.1 數(shù)據(jù)庫事務(wù)隔離級(jí)別 279
12.8.2 事務(wù)傳播 280
12.8.3 @Transactional注解 280
12.8.4 事務(wù)邊界 281
12.9 項(xiàng)目實(shí)際問題的解決 281
12.10 小結(jié) 282
第13章 使用MyBatis訪問數(shù)據(jù) 283
13.1 感受MyBatis 283
13.2 SqlSessionFactory 288
13.3 SqlSession 289
13.3.1 語句執(zhí)行方法 289
13.3.2 立即批量更新方法 291
13.3.3 事務(wù)控制方法 291
13.3.4 本地緩存 291
13.3.5 確保SqlSession被關(guān)閉 292
13.4 使用映射器 292
13.5 映射器注解 293
13.6 使用注解實(shí)現(xiàn)增、刪、改、查 296
13.7 關(guān)聯(lián)關(guān)系映射 299
13.7.1 一對一關(guān)聯(lián)映射 299
13.7.2 一對多關(guān)聯(lián)映射 301
13.7.3 多對多關(guān)聯(lián)映射 304
13.8 分頁查詢 306
13.9 小結(jié) 309
第14章 使用MongoDB訪問數(shù)據(jù) 310
14.1 下載和安裝MongoDB 310
14.2 MongoDB與關(guān)系數(shù)據(jù)庫的對比 312
14.3 增、刪、改、查的實(shí)現(xiàn) 312
14.4 小結(jié) 315
第4篇 企業(yè)應(yīng)用開發(fā)篇
第15章 安全框架Spring Security 316
15.1 快速開始 316
15.2 身份驗(yàn)證 318
15.3 表單認(rèn)證 318
15.3.1 自定義表單登錄頁 319
15.3.2 對有限資源進(jìn)行保護(hù) 321
15.4 前后端分離的登錄處理方式 325
15.5 多用戶的認(rèn)證與授權(quán) 327
15.5.1 內(nèi)存用戶的認(rèn)證和授權(quán) 327
15.5.2 默認(rèn)數(shù)據(jù)庫模型的用戶認(rèn)證與授權(quán) 330
15.5.3 自定義數(shù)據(jù)庫模型的用戶認(rèn)證與授權(quán) 332
15.6 JWT 336
15.6.1 什么是JWT 337
15.6.2 JWT的結(jié)構(gòu) 338
15.6.3 使用JWT實(shí)現(xiàn)token驗(yàn)證 339
15.7 小結(jié) 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 實(shí)例:在Spring Boot項(xiàng)目中應(yīng)用緩存 353
16.4 自定義鍵的生成策略 357
16.5 JCache(JSR-107)注解 358
16.6 小結(jié) 359
第17章 Spring Boot集成Redis 360
17.1 Redis簡介 360
17.2 Redis的應(yīng)用場景 361
17.3 Redis的安裝 361
17.4 Redis數(shù)據(jù)類型 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 掌握RedisTemplate 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 自定義RedisTemplate序列化方式 383
17.9 手動(dòng)實(shí)現(xiàn)Redis數(shù)據(jù)存儲(chǔ)與讀取 385
17.10 小結(jié) 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服務(wù)器 395
18.4.2 創(chuàng)建信道 395
18.4.3 聲明交換器 395
18.4.4 聲明隊(duì)列 396
18.4.5 綁定隊(duì)列 397
18.4.6 發(fā)布消息 398
18.4.7 消費(fèi)消息 399
18.4.8 消息確認(rèn)與拒絕 401
18.4.9 關(guān)閉連接 403
18.5 六種應(yīng)用模式 403
18.5.1 Simple 403
18.5.2 工作隊(duì)列 404
18.5.3 發(fā)布/訂閱 408
18.5.4 路由 410
18.5.5 主題 412
18.5.6 RPC 415
18.6 Spring Boot對RabbitMQ的支持 420
18.6.1 發(fā)送消息 420
18.6.2 接收消息 421
18.6.3 使用Spring AMQP實(shí)現(xiàn)六種應(yīng)用模式 421
18.7 延遲消息隊(duì)列 436
18.7.1 安裝延遲消息插件 436
18.7.2 訂單支付超時(shí)處理案例 436
18.8 小結(jié) 440
第19章 集成Elasticsearch,提供搜索服務(wù) 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 ElasticsearchRestTemplate 446
19.3.3 ElasticsearchRepository 450
19.4 小結(jié) 455
第5篇 項(xiàng)目實(shí)戰(zhàn)篇
第20章 電子商城項(xiàng)目實(shí)戰(zhàn) 456
20.1 數(shù)據(jù)庫設(shè)計(jì) 456
20.2 創(chuàng)建項(xiàng)目 458
20.3 項(xiàng)目結(jié)構(gòu) 458
20.4 項(xiàng)目配置 459
20.5 分類模塊 460
20.6 圖書模塊與評(píng)論模塊 464
20.7 用戶模塊 475
20.8 安全實(shí)現(xiàn) 478
20.9 使用JWT實(shí)現(xiàn)token驗(yàn)證 483
20.10 全局錯(cuò)誤處理器 485
20.11 小結(jié) 487
第21章 商品秒殺系統(tǒng) 488
21.1 功能描述 488
21.2 數(shù)據(jù)庫設(shè)計(jì) 490
21.3 創(chuàng)建項(xiàng)目 491
21.4 項(xiàng)目結(jié)構(gòu) 491
21.5 項(xiàng)目配置 492
21.6 配置Redis和RabbitMQ 493
21.7 數(shù)據(jù)訪問層 494
21.7.1 實(shí)體類 494
21.7.2 DAO接口 496
21.8 業(yè)務(wù)邏輯層(服務(wù)層) 496
21.9 表示層(Web層) 501
21.9.1 控制器 501
21.9.2 頁面 503
21.10 小結(jié) 506
第22章 部署Spring Boot應(yīng)用程序 507
22.1 JAR包的打包方式與執(zhí)行 507
22.2 打包成WAR文件并部署到Tomcat服務(wù)器上 508
22.3 小結(jié) 510