黨的二十大報告中指出: 教育、科技、人才是全面建設(shè)社會主義現(xiàn)代化國家的基礎(chǔ)性、戰(zhàn)略性支撐。必須堅持科技是第一生產(chǎn)力、人才是第一資源、創(chuàng)新是第一動力,深入實施科教興國戰(zhàn)略、人才強國戰(zhàn)略、創(chuàng)新驅(qū)動發(fā)展戰(zhàn)略,這三大戰(zhàn)略共同服務(wù)于創(chuàng)新型國家的建設(shè)。高等教育與經(jīng)濟社會發(fā)展緊密相連,對促進就業(yè)創(chuàng)業(yè)、助力經(jīng)濟社會發(fā)展、增進人民福祉具有重要意義。
Spring Boot 3.0推出以后市場反應(yīng)熱烈,版本升級帶來很多新的變化,迫切需要一本介紹Spring Boot 3.0新功能的書籍。為了滿足市場需求,本書采用了最新的Spring Boot 3.0版本,并且提供整合了市場上大部分主流開發(fā)技術(shù)的方案。
本書特色
(1) 新: 采用了2022年最新推出的Spring Boot 3.0版本,整合的各種第三方技術(shù)也同步更新到最新版本,例如Elasticsearch采用了最新的8.0版本、Vue也使用最新的3.0版本,Element采用Plus版本。大量采用最新技術(shù),例如Spring Security采用最新的配置方法,Elasticsearch采用Java API Client進行連接操作。
(2) 全: 本書囊括了JPA、MyBatis、MyBatisPlus、Vue 3.0 Element Plus、Redis、Spring Cache、Swagger 3.0、MongoDB、Spring Security、JWT、OAuth 2、RabbitMQ、RocketMQ、Kafka、Elasticsearch 8.0、WebSocket、定時任務(wù)與批處理、Java Mail及最前沿的人臉識別等眾多流行技術(shù)。
(3) 實用: 提供了眾多實用的技術(shù)解決方案,如Vue 3.0 Element Plus前后端分離實戰(zhàn)、新聞閱讀與點贊次數(shù)實戰(zhàn)、Spring Security動態(tài)權(quán)限管理、OAuth 2第三方GitHub登錄、商品流量秒殺流量削峰、自動補全、高亮查詢、在線聊天、郵件發(fā)送、人臉識別等,并提供了一個完整的前后端分離的商城后臺管理系統(tǒng),介紹了完整開發(fā)流程,提供了全部源代碼。
內(nèi)容結(jié)構(gòu)
第一部分為Spring Boot 基礎(chǔ)和基本數(shù)據(jù)操作(第1~8章): 講解Spring Boot的原理及Web開發(fā)技術(shù)、整合JPA、MyBatis、MyBatisPlus等,并提供一個Vue 3.0前后端分離實戰(zhàn)項目。
第二部分為Spring Boot高級技術(shù)(第9~11章): 講解Spring Boot整合Redis、MongoDB等非關(guān)系數(shù)據(jù)庫技術(shù),以及Spring Security安全框架。
第三部分為Spring Boot 與消息隊列和搜索引擎(第12~15章): 整合RabbitMQ、RocketMQ、Kafka等各種消息隊列MQ,以及Elasticsearch大數(shù)據(jù)搜索引擎。
第四部分為Spring Boot 企業(yè)級應(yīng)用(第16~19章): 講解Spring Boot整合WebSocket、定時任務(wù)、批處理、郵件發(fā)送等企業(yè)級開發(fā)技術(shù)。
第五部分為Spring Boot項目實戰(zhàn)(第20~22章): 提供Vue 3.0 Element Plus前后端分離的商城后臺管理系統(tǒng)及人臉識別實戰(zhàn)項目。最后介紹項目的部署。
讀者范圍
本書可供大學(xué)本科、專科、職業(yè)院校的計算機相關(guān)專業(yè)作為教材使用,并可作為學(xué)習(xí)Spring Boot技術(shù)的入門與提高的參考書或自學(xué)用書。
編者分工
第1~10章由陳立為編寫,第11~22章由李西明編寫。
資源下載
掃描目錄上方二維碼可下載本書配套資源。
編者
2023年6月
本書源代碼
教學(xué)課件
第一部分Spring Boot基礎(chǔ)和基本數(shù)據(jù)操作
第1章Spring Boot入門
1.1Spring Boot的優(yōu)點
1.2Spring Boot 3.0的新特性
1.3搭建Spring Boot 3.0開發(fā)環(huán)境
1.4創(chuàng)建第1個Spring Boot項目
1.4.1新建項目并添加依賴
1.4.2項目結(jié)構(gòu)
1.4.3創(chuàng)建控制器
1.4.4啟動項目
1.5Spring Boot原理
1.5.1父工程parent
1.5.2場景啟動器starter
1.5.3啟動類
1.5.4Web服務(wù)器
1.6Spring Boot配置
1.6.1常用配置
1.6.2配置文件類型
1.6.3YAML配置方式
1.6.4讀取配置文件
1.6.5多環(huán)境配置
1.6.6熱部署
本章小結(jié)
第2章Spring Boot Web開發(fā)技術(shù)
2.1RESTful風(fēng)格
2.1.1RESTful簡介
2.1.2創(chuàng)建RESTful訪問控制層
2.1.3使用Postman測試
2.2靜態(tài)資源訪問
2.2.1默認靜態(tài)資源訪問
2.2.2自定義靜態(tài)資源訪問
2.3路徑映射
2.4CORS跨域資源訪問
2.4.1跨域訪問問題
2.4.2CORS基礎(chǔ)
2.4.3CORS跨域問題解決方案
2.5統(tǒng)一響應(yīng)數(shù)據(jù)格式
2.6Spring Boot異常處理
2.6.1自定義錯誤頁
2.6.2@ControllerAdvice全局統(tǒng)一異常處理
2.7文件上傳
2.7.1單文件上傳
2.7.2多文件上傳
2.8Thymeleaf視圖層技術(shù)
2.8.1Thymeleaf的特點
2.8.2使用Thymeleaf
2.8.3Thymeleaf基礎(chǔ)語法
2.8.4SpEL表達式
2.8.5Thymeleaf表達式
2.8.6Thymeleaf內(nèi)置對象
2.8.7模板片段
2.8.8綜合實例
2.9接口文檔Swagger 3.0
2.9.1Swagger 3.0基礎(chǔ)知識
2.9.2Spring Boot整合Swagger基本流程
2.9.3美化UI
2.9.4生產(chǎn)環(huán)境關(guān)閉Swagger
本章小結(jié)
第3章Spring Data JPA
3.1Spring Data JDBC技術(shù)
3.2Spring Data JPA技術(shù)
3.2.1JpaRepository接口
3.2.2PagingAndSortingRepository接口
3.2.3CrudRepository接口
3.2.4基本增、刪、改、查方法
3.2.5方法命名查詢
3.2.6使用JPQL或原生SQL查詢
3.2.7一對一關(guān)聯(lián)查詢
3.2.8一對多與多對一關(guān)聯(lián)查詢
3.2.9多對多關(guān)聯(lián)查詢
3.2.10多條件動態(tài)查詢
本章小結(jié)
第4章Spring Boot整合MyBatis
4.1使用注解查詢
4.2動態(tài)查詢
4.3分頁查詢
4.4使用XML映射文件查詢
4.5動態(tài)更新
4.6批量刪除
4.7一對多關(guān)聯(lián)查詢
4.8多對一關(guān)聯(lián)查詢
4.9自連接查詢
4.9.1使用多對一實現(xiàn)自連接查詢
4.9.2使用一對多實現(xiàn)自連接查詢
4.10不等連接查詢
本章小結(jié)
第5章Spring Boot整合MyBatisPlus
5.1基本CRUD查詢
5.2條件查詢
5.2.1使用QueryWrapper封裝查詢條件
5.2.2使用LambdaQueryWrapper封裝查詢條件
5.3分頁查詢
5.4業(yè)務(wù)邏輯層快速開發(fā)
本章小結(jié)
第6章MyBatisPlus Vue Element前后端分離實戰(zhàn)
6.1后端項目
6.1.1數(shù)據(jù)庫創(chuàng)建
6.1.2Spring Boot 項目搭建
6.1.3增、刪、改、查功能實現(xiàn)
6.2前端項目
6.2.1安裝Vue開發(fā)環(huán)境
6.2.2創(chuàng)建Vue項目
6.2.3編寫Vue項目基礎(chǔ)功能代碼
6.2.4跨域問題解決方案
6.2.5查看全部學(xué)生信息功能模塊
6.2.6后臺分頁查詢功能
6.2.7前臺分頁查詢功能
6.2.8搜索功能
6.2.9新增功能
6.2.10修改功能
6.2.11刪除功能
本章小結(jié)
第7章Spring Boot整合Redis
7.1Redis簡介
7.1.1Redis的安裝與運行
7.1.2Redis的常用命令
7.2Spring Boot訪問Redis
7.2.1RedisTemplate操作String類型
7.2.2RedisTemplate操作Redis各種數(shù)據(jù)類型
7.2.3Redis實現(xiàn)分布式Session共享
7.2.4新聞閱讀與點贊次數(shù)實戰(zhàn)
7.2.5使用 RedisRepository訪問Redis
7.3Spring Boot訪問Redis集群
本章小結(jié)
第8章自動配置原理及自定義starter
8.1自動配置原理
8.1.1內(nèi)置自動配置類的自動配置
8.1.2外部自動配置類的自動配置
8.2條件注解
8.3自定義一個starter
8.4使用自定義starter
本章小結(jié)
第二部分Spring Boot高級技術(shù)
第9章Spring Boot整合Spring Cache
9.1Spring Cache簡介
9.2Spring Cache常用注解
9.2.1@Cacheable注解
9.2.2@CachePut注解
9.2.3@CacheEvict注解
9.2.4@Caching注解
9.3Spring Cache實戰(zhàn)案例
9.4使用Redis做緩存
9.5復(fù)雜多條件查詢時的緩存
9.6自定義鍵生成策略
本章小結(jié)
第10章Spring Boot整合MongoDB
10.1MongoDB簡介
10.2使用Spring Boot訪問MongoDB
10.2.1使用MongoRepository
10.2.2使用MongoTemplate
本章小結(jié)
第11章Spring Security安全管理框架
11.1Spring Security的認證功能
11.1.1默認的用戶認證
11.1.2自定義用戶名與密碼
11.1.3訪問控制
11.1.4自定義登錄界面與注銷登錄
11.1.5登錄認證失敗的處理
11.1.6記住用戶名
11.1.7圖形驗證碼的使用
11.1.8前后端分離時的登錄處理
11.2Spring Security的授權(quán)功能
11.2.1自定義用戶授權(quán)
11.2.2無訪問權(quán)限的處理
11.2.3Thymeleaf整合Security
11.3使用MyBatis實現(xiàn)數(shù)據(jù)庫認證
11.4使用MyBatis實現(xiàn)動態(tài)授權(quán)
11.5使用注解實現(xiàn)權(quán)限控制
11.6JWT原理
11.7JWT前后端分離認證實戰(zhàn)
11.8OAuth 2基礎(chǔ)知識
11.9OAuth 2第三方GitHub登錄實戰(zhàn)
本章小結(jié)
第三部分Spring Boot與消息隊列和搜索引擎
第12章Spring Boot整合RabbitMQ
12.1RabbitMQ入門
12.1.1RabbitMQ簡介
12.1.2RabbitMQ的下載并安裝啟動
12.1.3交換機的類型與路由規(guī)則
12.2Spring Boot整合RabbitMQ
12.2.1整合原理
12.2.2Direct交換模式實戰(zhàn)
12.2.3Fandout交換模式實戰(zhàn)
12.2.4Topic交換模式實戰(zhàn)
12.2.5消息發(fā)送確認
12.2.6消息接收確認
12.3商品秒殺流量削峰實戰(zhàn)
本章小結(jié)
第13章Spring Boot整合RocketMQ
13.1RocketMQ 入門
13.1.1RocketMQ 簡介
13.1.2RocketMQ架構(gòu)
13.2安裝RocketMQ
13.2.1Windows 10下安裝步驟
13.2.2安裝RocketMQ的控制臺
13.3Spring Boot整合RocketMQ簡介
13.3.1理論知識
13.3.2簡單整合
13.3.3Web項目整合RocketMQ
本章小結(jié)
第14章Spring Boot整合Kafka
14.1Kafka入門
14.1.1Kafka簡介
14.1.2Kafka下載并安裝啟動
14.2Spring Boot項目整合Kafka
14.2.1簡單整合
14.2.2Web項目整合Kafka
本章小結(jié)
第15章Elasticsearch搜索引擎
15.1Elasticsearch簡介
15.2Elasticsearch 8.x新特性
15.3Elasticsearch的下載與安裝
15.4Elasticsearch的常用操作
15.4.1索引操作
15.4.2文檔基本操作
15.4.3文檔查詢
15.5使用Java API Client操作Elasticsearch
15.5.1基本步驟
15.5.2索引操作
15.5.3文檔基本操作
15.5.4文檔查詢
15.6搜索引擎自動補全查詢實戰(zhàn)
15.7搜索引擎高亮顯示查詢關(guān)鍵字實戰(zhàn)
本章小結(jié)
第四部分Spring Boot企業(yè)級應(yīng)用
第16章Spring Boot整合WebSocket
16.1WebSocket簡介
16.1.1WebSocket協(xié)議
16.1.2STOMP子協(xié)議
16.2在線群聊聊天室實戰(zhàn)
16.3一對一聊天實戰(zhàn)
本章小結(jié)
第17章定時任務(wù)與批處理
17.1定時任務(wù)
17.1.1使用@Schedule實現(xiàn)定時任務(wù)
17.1.2cron表達式
17.1.3多線程處理定時任務(wù)
17.1.4使用Quartz實現(xiàn)定時任務(wù)
17.2批處理Spring Batch
本章小結(jié)
第18章Java Mail郵件發(fā)送
18.1發(fā)送簡單郵件
18.2發(fā)送帶附件的郵件
18.3發(fā)送模板郵件
本章小結(jié)
第19章Spring Boot日志與監(jiān)控
19.1日志
19.1.1日志基本操作
19.1.2創(chuàng)建日志對象
19.1.3控制日志輸出格式
19.1.4文件記錄日志
19.2Spring Boot Actuator
19.2.1Actuator端點的分類與測試
19.2.2自定義端點
19.2.3自定義HealthIndicator
19.2.4Spring Boot Admin
19.2.5JMX簡介
本章小結(jié)
第五部分Spring Boot項目實戰(zhàn)
第20章商城后臺管理系統(tǒng)
20.1需求分析
20.1.1項目概述及總體目標
20.1.2功能模塊
20.2數(shù)據(jù)庫設(shè)計
20.2.1概念結(jié)構(gòu)設(shè)計
20.2.2ER圖向關(guān)系模式轉(zhuǎn)換
20.2.3關(guān)系模式的規(guī)范化
20.2.4物理結(jié)構(gòu)設(shè)計
20.3后端開發(fā)
20.3.1框架搭建
20.3.2登錄相關(guān)模塊
20.3.3資源模塊
20.3.4訂單模塊
20.3.5統(tǒng)計模塊
20.4前端開發(fā)
20.4.1框架搭建
20.4.2登錄模塊
20.4.3商品管理模塊
20.4.4訂單管理模塊
20.4.5系統(tǒng)管理模塊
20.4.6統(tǒng)計模塊
本章小結(jié)
第21章Spring Boot人臉識別實戰(zhàn)
21.1搭建基礎(chǔ)項目
21.1.1申請人工智能人臉識別服務(wù)
21.1.2數(shù)據(jù)庫準備
21.1.3創(chuàng)建基礎(chǔ)項目
21.2用戶注冊人臉采集模塊
21.2.1前端資源
21.2.2注冊界面
21.2.3控制器實現(xiàn)注冊功能
21.3用戶人臉識別登錄模塊
21.3.1前端頁面
21.3.2控制器實現(xiàn)登錄功能
21.3.3系統(tǒng)主頁
21.4運行測試
本章小結(jié)
第22章項目部署
22.1前端打包
22.1.1打包項目
22.1.2將項目上傳到服務(wù)器
22.2后端打包預(yù)處理
22.2.1導(dǎo)入數(shù)據(jù)
22.2.2解決部署失敗問題
22.3Windows 10下部署前端
22.3.1準備前端環(huán)境
22.3.2啟動前端項目
22.4Windows 10下部署后端
22.4.1打開后端項目
22.4.2啟動后端項目
22.5Linux下部署前端
22.6Linux下部署后端
22.6.1制作鏡像文件
22.6.2部署步驟
本章小結(jié)
參考文獻