詳解Spring Boot——從入門(mén)到企業(yè)級(jí)開(kāi)發(fā)實(shí)戰(zhàn)
定 價(jià):129 元
叢書(shū)名:孫鑫精品圖書(shū)系列
- 作者:孫鑫
- 出版時(shí)間:2022/8/1
- ISBN:9787121439841
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TP312.8
- 頁(yè)碼:524
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)針對(duì)Spring Boot 2.6.x及以上版本,采用理論結(jié)合實(shí)際的講解方式,每章均配有多個(gè)示例,在內(nèi)容安排上由淺入深,在知識(shí)講解上深入淺出,讓讀者輕松掌握多種技術(shù)、中間件、框架與Spring Boot的整合開(kāi)發(fā)。最后通過(guò)兩個(gè)實(shí)戰(zhàn)項(xiàng)目,讓讀者在進(jìn)入企業(yè)后可以快速?gòu)氖禄赟pring Boot的企業(yè)開(kāi)發(fā)。全書(shū)共分為五篇:基礎(chǔ)篇、Web篇、數(shù)據(jù)訪問(wèn)篇、企業(yè)應(yīng)用開(kāi)發(fā)篇、項(xiàng)目實(shí)戰(zhàn)篇。本書(shū)內(nèi)容全面,涵蓋了常用的技術(shù)、中間件與框架;講解深入淺出,讓讀者學(xué)有所得。
孫鑫,國(guó)內(nèi)IT技術(shù)和教育專家,2009年中國(guó)教育杰出人物。具有20多年的軟件開(kāi)發(fā)和教育培訓(xùn)經(jīng)驗(yàn),精通多種程序語(yǔ)言和技術(shù)架構(gòu)。2004年曾推出“VC++深入編程”和“Java無(wú)難事”教學(xué)視頻,引起了強(qiáng)烈的反響,在網(wǎng)絡(luò)上掀起了一股視頻教學(xué)的風(fēng)潮,數(shù)十萬(wàn)名學(xué)員通過(guò)這兩套視頻走上了軟件開(kāi)發(fā)的道路。作者從2006年開(kāi)始,相繼出版了多本暢銷(xiāo)技術(shù)專著,包括《Java無(wú)難事》《Java Web開(kāi)發(fā)詳解》 《VC++深入詳解》《Struts 2深入詳解》《Servlet/JSP深入詳解》《XML、XML Schema、XSLT 2.0和XQuery開(kāi)發(fā)詳解 》《HTML5、CSS和JavaScript開(kāi)發(fā)》《Vue.js從入門(mén)到實(shí)戰(zhàn)》。目錄
目 錄
第1篇 基礎(chǔ)篇
第1章 Spring Boot初窺 1
1.1 Spring Boot簡(jiǎn)介 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開(kāi)發(fā)Spring Boot應(yīng)用 13
1.3 使用Spring Tool Suite開(kāi)發(fā)Spring Boot應(yīng)用 16
1.3.1 下載并安裝STS 16
1.3.2 配置Maven環(huán)境 17
1.3.3 開(kāi)發(fā)Spring Boot應(yīng)用 19
1.4 使用IntelliJ IDEA開(kāi)發(fā)Spring Boot應(yīng)用 22
1.4.1 下載并安裝IDEA 22
1.4.2 配置IDEA 23
1.4.3 開(kāi)發(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 編寫(xiě)控制器 29
2.3 熱部署 30
2.4 Spring Boot的配置文件 33
2.4.1 YAML語(yǔ)法 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 測(cè)試自定義的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接收請(qǐng)求參數(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 請(qǐng)求報(bào)頭 84
3.4.7 日期類(lèi)型參數(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的語(yǔ)法 99
4.3.1 使用文本 99
4.3.2 國(guó)際化 99
4.3.3 標(biāo)準(zhǔn)表達(dá)式語(yǔ)法 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 用戶注冊(cè)程序 137
4.4.1 編寫(xiě)注冊(cè)和注冊(cè)成功頁(yè)面 137
4.4.2 編寫(xiě)User類(lèi) 139
4.4.3 編寫(xiě)UserController類(lèi) 139
4.4.4 測(cè)試用戶注冊(cè)程序 140
4.5 小結(jié) 141
第5章 過(guò)濾器、監(jiān)聽(tīng)器與攔截器 142
5.1 Servlet過(guò)濾器 142
5.1.1 Filter接口 143
5.1.2 對(duì)響應(yīng)內(nèi)容進(jìn)行壓縮的過(guò)濾器 144
5.2 Servlet監(jiān)聽(tīng)器 149
5.3 攔截器 151
5.4 小結(jié) 153
第6章 輸入驗(yàn)證與攔截器 154
6.1 JSR-303 155
6.2 添加驗(yàn)證依賴 155
6.3 對(duì)User的字段添加驗(yàn)證 156
6.4 在注冊(cè)頁(yè)面中添加驗(yàn)證錯(cuò)誤消息的顯示 157
6.5 測(cè)試輸入數(shù)據(jù)的驗(yàn)證 159
6.6 自定義驗(yàn)證器 159
6.6.1 自定義注解 160
6.6.2 編寫(xiě)實(shí)現(xiàn)ConstraintValidator接口的類(lèi) 160
6.6.3 在User類(lèi)上使用自定義驗(yàn)證注解 162
6.6.4 在注冊(cè)頁(yè)面中添加確認(rèn)密碼輸入項(xiàng) 163
6.6.5 測(cè)試自定義驗(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ò)誤頁(yè)面 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測(cè)試接口 194
9.6.3 使用RestTemplate測(cè)試接口 198
9.7 編寫(xiě)全局錯(cuò)誤處理器 200
9.8 使用Swagger 3.0生成接口文檔 204
9.8.1 添加Swagger 3.0.0依賴 204
9.8.2 創(chuàng)建Swagger的配置類(lèi) 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ù)式開(kāi)發(fā)方式 220
10.5 體驗(yàn)異步非阻塞 227
10.6 服務(wù)器發(fā)送事件 228
10.7 小結(jié) 229
第3篇 數(shù)據(jù)訪問(wèn)篇
第11章 使用Spring的JdbcTemplate訪問(wèn)數(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ǔ)過(guò)程 239
11.3.8 獲取生成的主鍵 240
11.3.9 編寫(xiě)實(shí)體類(lèi) 245
11.3.10 編寫(xiě)DAO類(lèi) 246
11.4 小結(jié) 249
第12章 使用JPA訪問(wèn)數(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 編寫(xiě)實(shí)體類(lèi) 252
12.1.4 編寫(xiě)DAO接口 253
12.1.5 編寫(xiě)單元測(cè)試 254
12.2 兩種開(kāi)發(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 基于主鍵的一對(duì)一關(guān)聯(lián)映射 262
12.5.2 基于外鍵的一對(duì)一關(guān)聯(lián)映射 267
12.5.3 一對(duì)多關(guān)聯(lián)映射 270
12.5.4 多對(duì)多關(guān)聯(lián)映射 274
12.6 使用JPQL進(jìn)行查詢 277
12.7 使用原生SQL語(yǔ)句進(jìn)行查詢 278
12.8 事務(wù) 279
12.8.1 數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別 279
12.8.2 事務(wù)傳播 280
12.8.3 @Transactional注解 280
12.8.4 事務(wù)邊界 281
12.9 項(xiàng)目實(shí)際問(wèn)題的解決 281
12.10 小結(jié) 282
第13章 使用MyBatis訪問(wèn)數(shù)據(jù) 283
13.1 感受MyBatis 283
13.2 SqlSessionFactory 288
13.3 SqlSession 289
13.3.1 語(yǔ)句執(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 一對(duì)一關(guān)聯(lián)映射 299
13.7.2 一對(duì)多關(guān)聯(lián)映射 301
13.7.3 多對(duì)多關(guān)聯(lián)映射 304
13.8 分頁(yè)查詢 306
13.9 小結(jié) 309
第14章 使用MongoDB訪問(wèn)數(shù)據(jù) 310
14.1 下載和安裝MongoDB 310
14.2 MongoDB與關(guān)系數(shù)據(jù)庫(kù)的對(duì)比 312
14.3 增、刪、改、查的實(shí)現(xiàn) 312
14.4 小結(jié) 315
第4篇 企業(yè)應(yīng)用開(kāi)發(fā)篇
第15章 安全框架Spring Security 316
15.1 快速開(kāi)始 316
15.2 身份驗(yàn)證 318
15.3 表單認(rèn)證 318
15.3.1 自定義表單登錄頁(yè) 319
15.3.2 對(duì)有限資源進(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ù)庫(kù)模型的用戶認(rèn)證與授權(quán) 330
15.5.3 自定義數(shù)據(jù)庫(kù)模型的用戶認(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簡(jiǎn)介 360
17.2 Redis的應(yīng)用場(chǎng)景 361
17.3 Redis的安裝 361
17.4 Redis數(shù)據(jù)類(lèi)型 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 編寫(xiě)工具類(lèi)封裝Redis訪問(wèn)操作 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簡(jiǎn)介 388
18.2.1 AMQP 389
18.2.2 常用交換器 390
18.3 RabbitMQ的下載與安裝 393
18.3.1 安裝Erlang/OTP軟件庫(kù) 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對(duì)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對(duì)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ù)庫(kù)設(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 分類(lèi)模塊 460
20.6 圖書(shū)模塊與評(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ù)庫(kù)設(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ù)訪問(wèn)層 494
21.7.1 實(shí)體類(lèi) 494
21.7.2 DAO接口 496
21.8 業(yè)務(wù)邏輯層(服務(wù)層) 496
21.9 表示層(Web層) 501
21.9.1 控制器 501
21.9.2 頁(yè)面 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