Spring Boot + Vue.js + 分佈式組件全棧開發訓練營 (視頻教學版)

Spring Boot + Vue.js + 分佈式組件全棧開發訓練營 (視頻教學版)

作者: 曹宇 胡書敏
出版社: 清華大學
出版在: 2021-10-01
ISBN-13: 9787302589778
ISBN-10: 7302589771
裝訂格式: 平裝
總頁數: 284 頁





內容描述


本書以企業應用開發為目標,全面講述Spring Boot整合分佈式組件進行全棧項目開發的實戰技能。全書分為三部分。第一部分(第1~9章)主要講述Spring Boot的相關技能,包括搭建Spring Boot開發環境、Spring Boot框架基礎、JPA操作數據庫、面向切麵編程、基於Thymeleaf和FreeMarker的全棧開發、攔截器和過濾器、RESTful規範定義服務、Swagger組件可視化服務、logback和ELK組件輸出日誌、基於Spring Security和Shiro的安全框架技術和基於Junit的單元測試技術。第二部分(第10~15章)主要講述Spring Boot整合諸多分佈式組件的技術,包括整合MongoDB、Redis和MyCAT數據層組件、整合Dubbo和Zookeeper、整合RabbitMQ消息中間件和基於Nginx的分佈式部署。第三部分(第16和17章),第16章以前後端分離項目為例,給出了基於Vue的全棧開發技術,其中前端用到了Vue、Element-UI和Axios等組件,後端用到了Redis緩存組件和MyCAT分庫組件;第17章通過高並發限流和秒殺項目講述了Redis和RabbitMQ等分佈式組件的用法。 本書是編者十餘年一線Java項目開發經驗的總結,重在解決實際開發中遇到的問題,特別適合具有Java基礎和想學習Spring Boot項目開發的人員使用。由於本書各章還提供了練習題,因此也很適合用作培訓機構和大專院校書的教學用書。


目錄大綱


1章  搭建Spring Boot開發環境 1
1.1  初識Spring Boot 1
1.1.1  Spring Boot是什麼 1
1.1.2  Spring、Spring MVC和Spring Boot的關係 1
1.1.3  Spring Boot是SSM框架的升級版 2
1.2  搭建Spring Boot的開發環境 3
1.2.1  安裝和配置JDK開發環境 3
1.2.2  安裝IDEA集成開發環境 5
1.2.3  安裝Maven工具 5
1.2.4  Maven工具與IDEA的集成 6
1.3  用Maven開發一個Spring Boot項目 8
1.3.1  搭建基於Maven的Spring Boot項目 8
1.3.2  通過pom.ml文件引入依賴包 9
1.3.3  開發一個Spring Boot項目 11
1.3.4  運行並觀察效果 12
1.3.5  對Spring Boot項目的直觀說明 13
1.4  思考與練習 13
2章  Spring Boot編程基礎 15
2.1  準備知識:什麼是控制反轉 15
2.1.1  以實例了解控制反轉的做法 15
2.1.2  Bean與Spring容器 17
2.1.3  控制反轉和依賴注入是一回事 17
2.2  Spring Boot項目的通用框架 18
2.3  開發Spring Boot啟動類 19
2.3.1  對註解@SpringBootApplication的說明 19
2.3.2  配置熱部署 20
2.3.3  通過Banner定制啟動信息 21
2.3.4  關閉定制的啟動界面 22
2.4  編寫控制器類 22
2.4.1  用@Controller註解定義控制器類 22
2.4.2  用@RequestMapping映請求 24
2.4.3  從請求中讀取參數 26
2.4.4  用produces參數返回JSON格式的結果 27
2.5  編寫業務邏輯類 28
2.5.1  用@Service註解編寫業務處理類 28
2.5.2  在控制器類中調用業務邏輯類的方法 29
2.6  編寫和讀取配置文件 30
2.6.1  配置和讀取.properties文件 30
2.6.2  配置和讀取.yml文件 31
2.6.3  用@Value註解讀取配置文件 32
2.6.4  在項目中用同一種風格讀取配置文件 33
2.7  思考與練習 33
3章  Spring Boot用JPA作數據庫 35
3.1  搭建MySQL環境 35
3.1.1  安裝MySQL數據庫和客戶端 35
3.1.2  通過MySQL客戶端創建數據庫連接 36
3.1.3  通過MySQL客戶端創建數據庫 38
3.1.4  在數據庫中創建數據表 39
3.1.5  向數據表中插入若干數據 39
3.2  ORM概念與JPA組件 40
3.2.1  通過ORM分離業務和數據庫作 40
3.2.2  JPA組件是ORM的解決方案 41
3.2.3  JPA組件的常用接口和實現類 41
3.3  通過JpaRepository訪問數據庫 42
3.3.1  創建項目,引入JPA依賴包 42
3.3.2  確認MySQL數據環境 43
3.3.3  編寫業務實體類 43
3.3.4  編寫JPA的配置文件 44
3.3.5  用JpaRepository編寫Repo類 45
3.3.6  編寫控制器類和業務邏輯類 46
3.3.7  運行觀察增刪改查的效果 48
3.4  實現分頁和排序的JPA接口 49
3.4.1  用PagingAndSortingRepository實現排序和分頁 49
3.4.2  對排序和分頁對象的說明 51
3.5  深入了解JPA查詢數據的方式 52
3.5.1  JPA從方法名中解析數據庫作的方式 52
3.5.2  用@Query查詢數據 53
3.5.3  用nativeQuery參數運行原生SQL語句 53
3.6  通過JPA組件引入事務 54
3.6.1  “要么全都做,要么全都不做”的事務 54
3.6.2  用@Transactional註解管理事務 54
3.6.3  定義事務隔離級別 56
3.6.4  定義事務傳播機制 57
3.6.5  @transactional註解使用建議 58
3.7  思考與練習 59
4章  Spring Boot整合前端模板 60
4.1  Thymeleaf模板與前後端交互 60
4.1.1  用於前後端交互的ModelAndView對象 60
4.1.2  Spring Boot與Thymeleaf整合的範例 61
4.1.3  用Thymeleaf循環展示數據 64
4.1.4  用Thymeleaf進行條件判斷 66
4.2  Spring Boot、JPA整合Thymeleaf 67
4.2.1  創建項目並準備數據環境 67
4.2.2  通過JPA獲取數據並傳給前端 68
4.2.3  用Thymeleaf模板演示分頁效果 71
4.3  Spring Boot整合FreeMarker 74
4.3.1  Spring Boot整合FreeMarker的簡單範例 74
4.3.2  用FreeMarker模板展示分頁效果 76
4.4  思考與練習 79
5章  面向切面編程與過濾器攔截器 80
5.1  面向切面的概念和做法 80
5.1.1  相關概念 80
5.1.2  用範例了解面向切面編程 81
5.1.3  環繞通知與攔截器 85
5.2  Spring Boot與攔截器 85
5.2.1  攔截器的重要方法 85
5.2.2  Spring Boot整合多個攔截器 86
5.2.3  從攔截器的運行效果觀察執行順序 90
5.3  Spring Boot與過濾器 90
5.3.1  過濾器的3個重要方法 90
5.3.2  Spring Boot整合多個過濾器 91
5.3.3  從運行效果觀察過濾器的執行順序 94
5.3.4  過濾器和攔截器的異同點 94
5.4  思考與練習 95
6章  用RESTful規範提供統一風格的服務 96
6.1  RESTful規範與模塊間的通信 96
6.1.1  URL請求、HTTP動作與返回碼 96
6.1.2  什麼是RESTful 97
6.1.3  增刪改查方法對應的RESTful接口名 98
6.1.4  調用不同版本的請求 98
6.2  用RESTful統一項目的對外服務風格 99
6.2.1  創建項目 99
6.2.2  定義pom.ml,編寫啟動類 100
6.2.3  統一返回結果的格式 100
6.2.4  在控制器類中定義增刪改查方法 102
6.2.5  全局性異常處理機制 104
6.3  用RestTemplate調用RESTful請求 105
6.3.1  RestTemplate對象重要方法說明 106
6.3.2  用RestTemplate發起POST請求 106
6.3.3  用RestTemplate發起GET請求 107
6.3.4  觀察異常處理的結果 108
6.3.5  用RestTemplate發起PUT請求 109
6.3.6  用RestTemplate發起DELETE請求 109
6.4  用Swagger可視化RESTful請求 110
6.4.1  Swagger能解決哪些問題 110
6.4.2  用Swagger可視化RESTful請求 110
6.4.3  演示運行效果 112
6.5  思考與練習 114
7章  Spring Boot整合日誌組件 116
7.1  Spring Boot整合logback輸出日誌 116
7.1.1  Spring Boot整合logback的範例項目 116
7.1.2  用不同級別的日誌輸出不同種類的信息 120
7.1.3  為每個線程設置標識,方便追踪問題 121
7.1.4  格式化日誌文件名,方便排查問題 122
7.2  搭建ELK組件開發環境 122
7.2.1  ELK組件與工作示意圖 123
7.2.2  搭建ELK運行環境 123
7.3  Spring Boot整合ELK平台 126
7.3.1  Spring Boot向ELK輸出日誌 126
7.3.2  在Kibana中觀察日誌 127
7.4  思考與練習 129
8章  Spring Boot整合Junit單元測試組件 131
8.1  了解單元測試 131
8.1.1  單元測試的目的及難點分析 131
8.1.2  Junit組件簡介 132
8.1.3  單元測試同其他測試的關係 132
8.2  對待測試項目的分析 133
8.2.1  構建待測試的項目 133
8.2.2  測試要點分析 134
8.3  Spring Boot整合Junit 135
8.3.1  引入Junit依賴包 135
8.3.2  測試控制器方法 135
8.3.3  測試業務處理方法 138
8.3.4  測試數據訪問方法 140
8.4  思考與練習 141
9章  Spring Boot集成安全管理框架 143
9.1  安全管理與Spring Security框架 143
9.1.1  安全管理需求點分析 143
9.1.2  Spring Security框架介紹 144
9.2  Spring Boot整合Spring Security 144
9.2.1  引入依賴包,編寫啟動類和控制類 144
9.2.2  觀察身份驗證效果 145
9.2.3  在配置文件中管理登錄信息 146
9.2.4  以配置類的方式管理登錄信息 146
9.2.5  基於角色的權限管理 147
9.3  基於數據庫的安全管理框架 149
9.3.1  準備數據 149
9.3.2  創建項目,編寫pom.ml 151
9.3.3  編寫數據庫配置文件 152
9.3.4  從數據庫中獲取安全信息 152
9.4  Spring Boot整合Shiro框架 153
9.4.1  Shiro框架概述 153
9.4.2  Spring Boot整合Shiro框架的範例說明 154
9.4.3  編寫pom.ml文件和啟動類 154
9.4.4  編寫控制器類 155
9.4.5  編寫Shiro相關類 156
9.4.6  編寫登錄等前端代碼 159
9.4.7  觀察基於Shiro的安全驗證流程 160
9.5  思考與練習 161
10章  Spring Boot整合MongoDB數據庫 163
10.1  了解MongoDB 163
10.1.1  MongoDB概述 163
10.1.2  MongoDB的優缺點 164
10.1.3  安裝MongoDB數據庫 164
10.2  使用MongoDB 165
10.2.1  創建數據庫和數據表 165
10.2.2  作數據表的數據 166
10.3  Spring Boot整合MongoDB 167
10.3.1  項目和數據庫的說明 167
10.3.2  編寫pom文件、啟動類和配置文件 167
10.3.3  編寫業務模型類 168
10.3.4  通過MongoTemplate作MongoDB 169
10.3.5  通過JPA作MongoDB 171
10.3.6  觀察運行結果 172
10.4  思考與練習 173
11章  Spring Boot整合Redis緩存 174
11.1  了解Redis 174
11.1.1  Redis概述 174
11.1.2  Redis的優缺點 175
11.1.3  搭建Redis數據庫環境 175
11.1.4  Redis服務器和客戶端 176
11.2  Redis常用命令 176
11.2.1  set和get命令 176
11.2.2  del命令 177
11.2.3  eists命令 177
11.3  Redis基本數據類型 178
11.3.1  字符串類型 178
11.3.2  Hash類型 178
11.3.3  列表類型 179
11.3.4  集合類型 180
11.3.5  有序集合類型 180
11.4  Spring Boot整合Redis 181
11.4.1  項目說明 181
11.4.2  引入依賴包 182
11.4.3  編寫配置文件和啟動類 182
11.4.4  編寫控制器類和業務模型類 183
11.4.5  編寫業務邏輯類 184
11.4.6  編寫與Redis交互的類 185
11.4.7  觀察和Redis整合的效果 186
11.5  Spring Boot整合數據庫與Redis緩存 186
11.5.1  數據庫整合緩存的說明 186
11.5.2  防緩存穿透的設計 187
11.5.3  防內存溢出的設計 187
11.5.4  整合數據庫和緩存的項目 188
11.5.5  觀察MySQL和Redis的整合效果 193
11.6  思考與練習 194
12章  Spring Boot整合MyCAT分庫組件 196
12.1  MyCAT分庫組件概述 196
12.1.1  分庫需求與MyCAT組件 196
12.1.2  MyCAT組件的重要配置文件 197
12.1.3  下載MyCAT組件 198
12.2  MyCAT整合MySQL實現分庫效果 198
12.2.1  分庫效果框架圖 199
12.2.2  用MyCAT實現分庫效果 199
12.2.3  觀察分庫效果 202
12.3  Spring Boot整合MyCAT組件 202
12.3.1  通過pom.ml文件引入依賴包 202
12.3.2  編寫配置文件 203
12.3.3  實現整合效果 203
12.3.4  觀察分庫效果 205
12.4  Spring Boot整合Redis與MyCAT組件 206
12.4.1  整合後的數據服務架構 206
12.4.2  實現整合效果 206
12.4.3  觀察整合效果 210
12.5  思考與練習 211


作者介紹


曹宇,副教授,從事高校教育工作17年,主要研究領域為計算機應用技術,主講Java編程課程多年,主導開發了EPC企業專利信息協同平台、大宗商品信息管理系統等多個項目,公開發表了《基於蒙太古語義學和受控自然語言的文獻信息系統的實現》《基於JSON、JavaScript、HTML5和前端存儲技術的均衡運算框架研究》《基於UWB的ROS機器人室內定位系統設計》等論文數十篇。
  
胡書敏,大連理工大學計算機碩士,有15年Java開發經驗,資深Java架構師,目前在SAP從事Java開發工作,有平安、花旗和IBM等大廠的工作經驗,同時還有近8年Java技術面試官的經驗。
出版過《Java Web輕量級開發麵試教程》《Java核心技術及面試指南》《Spring Cloud實戰》等技術圖書。




相關書籍

Jump Start Responsive Web Design: Modern Dynamic Responsive Solutions

作者 Chris Ward

2021-10-01

Node.js Web開發實戰(慕課版)

作者 李翠霞 嚴曉龍 王勇

2021-10-01

數據算法:Hadoop/Spark大數據處理技巧

作者 Mahmoud Parsian(馬哈默德·帕瑞斯安)

2021-10-01