從零開始學 Spring Boot

明日科技

  • 出版商: 化學工業
  • 出版日期: 2022-08-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 384
  • 裝訂: 平裝
  • ISBN: 7122412164
  • ISBN-13: 9787122412164
  • 相關分類: Java 相關技術
  • 立即出貨 (庫存 < 3)

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

商品描述

本書從零基礎讀者的角度出發,通過通俗易懂的語言、豐富多彩的實例,循序漸進地讓讀者在實踐中學習Spring Boot框架的用法。
全書共分為3篇15章,內容包括環境搭建,Spring Boot基礎,配置項目,Controller控制器,
請求的過濾、攔截與監聽,Service服務,日誌組件,單元測試,異常處理,模板引擎,
JSON解析器,WebSocket長連接,上傳與下載,MyBatis和Redis等。
書中先介紹基本概念和基礎語法,再講解代碼位置、參數說明,最後將代碼整合到項目中並演示運行效果;
講解過程給出詳細說明與註釋,降低讀者學習難度。
同時,本書配套了大量教學視頻,掃碼即可觀看,還提供所有程序源文件,方便讀者實踐。
本書適合Spring Boot初學者及已學完Java基礎、Java Servlet基礎和HTML基礎的讀者自學使用,
也可用作高等院校相關專業的教材及參考書。

作者簡介

明日科技
是國內領先的編程學習資源提供商,目前已出版圖書500多個品種,
主要有《程序開發範例寶典》《軟件開發視頻大講堂》《軟件開發1200例》
《零基礎學系列》《項目開發實戰入門》等系列產品,
其中60多個品種版權輸出台灣地區,多個品種榮獲“全行業優秀暢銷書”獎項,
《軟件開發視頻大講堂》《零基礎學系列》系列是目前市場上暢銷的專業基礎編程類叢書。

目錄大綱

第1章 環境搭建 2 
1.1 安裝Java運行環境——JDK 3
1.1.1 下載Open JDK 3
1.1.2 安裝與配置 4
1.2 安裝項目構建工具——Maven 6
1.2.1 下載壓縮包 6
1.2.2 修改JAR文件的存放位置 7
1.2.3 添加阿里雲中央倉庫鏡像 8
1.3 安裝集成開發環境——Eclipse 9
1.3.1 下載與安裝 9
1.3.2 啟動 11
1.3.3 配置Java運行環境 12
1.3.4 配置Maven環境 14
1.4 接口測試工具——Postman 16
1.5 編寫第一個Spring Boot程序 18
1.5.1 在Spring官網生成初始項目文件 18
1.5.2 Eclipse導入Spring Boot項目 21
1.5.3 編寫簡單的跳轉功能 23
1.5.4 打包項目 25
1.6 為Eclipse安裝Spring插件(可選) 26
1.6.1 安裝插件的步驟 27
1.6.2 快速創建Spring Boot項目 28
本章知識思維導圖 31

第2章 Spring Boot基礎 32
2.1 Spring Boot簡介 33
2.1.1 為什麼用Spring Boot? 33
2.1.2 Spring Boot的特點 33
2.2 常用註解 34
2.3 啟動類 35
2.4 命名規範 36
2.4.1 包的命名 36
2.4.2 Java文件的命名 39
2.5 理解注入 41
2.5.1 一個簡單的注入例子 41
[實例01] 將用戶名註冊成Bean 41
2.5.2 註冊Bean 43
[實例02] 李四的名字必須通過別名註入 44
[實例03] 指定People對像初始化方法和銷毀方法 46
2.5.3 獲取Bean 48
2.6 為項目添加依賴 50
2.6.1 修改pom.xml配置文件 50
2.6.2 如何查找依賴的版本號 53
本章知識思維導圖 54

第3章 配置項目 55
3.1 配置文件 56
3.1.1 properties和yml 56
3.1.2 常用配置 59
3.2 讀取配置項的值 60
3.2.1 使用@Value註解注入 60
[實例01] 讀取配置文件中記錄的學生信息 60
3.2.2 使用Environment環境組件 61
[實例02] 讀取配置文件中個人的簡歷信息 62
3.2.3 創建配置文件的映射對象 63
[實例03] 將配置文件中的信息封裝成學生對象 66
3.3 同時擁有多個配置文件 69
3.3.1 加載多個配置文件 69
[實例04] 讀取自定義配置文件中的靜態數據 70
3.3.2 切換多環境配置文件 72
[實例05] 創建生產和測試兩套環境的配置文件,切換兩套環境後啟動項目 73
3.4 @Configuration配置類 74
[實例06] 自定義項目的錯誤頁面 75
本章知識思維導圖 77

第4章 Controller控制器 78
4.1 映射HTTP請求 79
4.1.1 @Controlle/ 79
4.1.2 @RequestMapping 79
[實例01] 訪問指定地址進入主頁 79
[實例02] 訪問多個地址進入同一主頁 80
[實例03] 根據請求類型顯示不同的頁面 82
[實例04] 用戶發送的請求必須包含name參數和id參數 83
[實例05] 獲取用戶客戶端Cookie中的Session id,判斷用戶是否為自動登錄 85
[實例06] 要求用戶發送的數據必須是JSON格式 86
[實例07] 為電商平台設置上層地址 89
4.1.3 @ResponseBody 89
4.1.4 @RestControlle/ 91
4.1.5 重定向 91
[實例08] 將請求重定向為百度首頁(方法一) 91
[實例09] 將請求重定向為百度首頁(方法二) 92
4.2 傳遞參數 93
4.2.1 自動識別請求的參數 93
[實例10] 驗證用戶發送的賬號、密碼是否正確 93
4.2.2 @RequestParam 95
[實例11] 獲取用戶發送的token口令 95
[實例12] 如果用戶沒有發送用戶名,則用“遊客”稱呼用戶 97
4.2.3 @RequestBody 97
[實例13] 將前端發送的JSON數據封裝成People類對象 98
4.2.4 獲取Servlet的內置對象 99
[實例14] 服務器返回圖片 100
4.3 RESTful風格及傳參方式 101
4.3.1 什麼是RESTful風格? 101
4.3.2 動態URL地址 102
[實例15] 使用RESTful風格對用戶信息進行查、改、刪 103
本章知識思維導圖 107

第5章 請求的過濾、攔截與監聽 108
5.1 過濾器 109
5.1.1 通過配置類註冊 109
[實例01] 用過濾器檢查用戶是否登錄 110
[實例02] 讓同一個請求經過三個過濾器 111
5.1.2 通過@WebFilter註解註冊 113
[實例03] 用過濾器統計資源訪問數量 114
5.2 攔截器 115
[實例04] 捕捉一個請求的執行前、執行後和結束事件 116
[實例05] 攔截高頻訪問 118
5.3 監聽器 120
[實例06] 監聽每一個前端請求的URL、IP和session id 121
[實例07] 監聽網站的當前訪問人數 123
本章知識思維導圖 124

第6章 Service服務 125
6.1 服務層的概念 126
6.2 @Service註解 126
[實例01] 創建用戶服務,校驗用戶賬號密碼是否正確 127
6.3 同時存在多個實現類的情況 128
6.3.1 按照實現類名稱映射 128
[實例02] 為翻譯服務創建英譯漢、法譯漢實現類 129
6.3.2 按照@Service的value屬性映射 131
[實例03] 為成績服務創建升序排列和降序排列實現類 131
6.4 不實現接口的@Service類 134
[實例04] 校驗前端發送的名稱是否為中文姓名 134
6.5 @Service和@Repository的區別 136
本章知識思維導圖 136

第7章 日誌組件 137
7.1 Spring Boot默認的日誌組件 138
7.1.1 log4j框架與logback框架 138
7.1.2 slf4j框架 138
7.2 打印日誌 138
7.2.1 slf4j的用法 138
[實例01] 在日誌中輸出前端發來的數據 140
7.2.2 解讀日誌 141
7.3 保存日誌文件 142
7.3.1 指定日誌文件保存地址 142
[實例02] 在項目的logs文件夾下保存日誌文件 142
7.3.2 指定日誌文件名稱 143
7.3.3 為日誌文件添加約束 144
[實例03] 若logs文件夾下日誌文件超出2kB則打包成ZIP壓縮包 144
7.4 調整日誌內容 146
7.4.1 設置日誌級別 146
[實例04] 讓所有控制器都打印DEBUG日誌 146
7.4.2 修改日誌格式 148
[實例05] 在控制台顯示簡化的中文日誌,在日誌文件中記錄詳細英文日誌 148
7.5 支持logback配置文件 149
[實例06] 使用logback.xml配置日誌組件,在控制台打印日誌的同時生成日誌文件 149
本章知識思維導圖 151

第8章 單元測試 152
8.1 JUnit簡介 153
8.1.1 什麼是JUnit? 153
8.1.2 Spring Boot中的JUnit 153
8.2 註解 155
8.2.1 核心註解 155
[實例01] 測試用戶登錄驗證服務 156
8.2.2 測前準備與測後收尾 157
[實例02] 在測試方法運行前後打印方法名稱 158
[實例03] 在測試開始前執行初始化方法,測試結束後執行資源釋放方法 159
8.2.3 參數化測試 161
[實例04] 測試判斷素數算法的執行效率 161
[實例05] 設計多組用例來測試證用戶登錄驗證功能 163
[實例06] 將季節枚舉作為測試方法的參數 164
8.2.4 其他常用註解 165
8.3 斷言 168
8.3.1 Assertions類的常用方法 168
8.3.2 兩種導入方式 169
8.3.3 Executable接口 169
8.3.4 在測試中的應用 170
[實例07] 驗證開發者編寫的升序排序算法是否正確 170
[實例08] 驗證用戶登錄方法是否完善 172
8.4 模擬Servlet內置對象 174
[實例09] 在單元測試中偽造用戶登錄的session記錄 174
8.5 模擬網絡請求 176
8.5.1 創建網絡請求 176
8.5.2 添加請求參數 177
8.5.3 分析結果 178
8.5.4 在測試用的應用 179
[實例10] 測試RESTful風格的物料查詢服務和物料新增服務 180
[實例11] 使用MockMvc進行斷言測試 182
本章知識思維導圖 184

第9章 異常處理 185
9.1 攔截特定異常 186
[實例01] 攔截缺失參數引發的空指針異常 186
9.2 攔截全局最底層異常 188
[實例02] 攔截意料之外出現的異常 188
9.3 獲取具體的異常日誌 190
[實例03] 打印異常的堆棧日誌 190
9.4 指定被攔截的Java文件 192
9.4.1 只攔截某個包中發生的異常 192
[實例04] 只攔截註冊服務引發異常 192
9.4.2 只攔截某個註解標註類發生的異常 195
[實例05] 只攔截註冊服務引發異常 195
9.5 攔截自定義異常 197
[實例06] 攔截年齡是負數的異常 197
9.6 修改自定義異常的錯誤狀態 198
[實例07] 讓負數年齡引發HTTP 400錯誤 199
本章知識思維導圖 201

第2篇 實用Web技術篇
第10章 模板引擎 204
10.1 Thymeleaf 205
10.1.1 添加依賴 205
10.1.2 跳轉至HTML頁面文件 206
[實例01] 為首頁和登錄頁面編寫HTML文件,並實現跳轉邏輯 207
[實例02] 為項目添加默認首頁和錯誤頁 209
10.1.3 常用表達式和標籤 210
10.1.4 向頁面傳值 212
[實例03] 在前端頁面顯示用戶的IP地址等信息 213
10.1.5 向頁面傳輸對象 214
[實例04] 用三種方式顯示人員信息 215
10.1.6 頁面中的判斷 216
[實例05] 判斷購票者是否符合兒童票要求 217
[實例06] 判斷季節並展示結果 218
10.1.7 頁面中的循環 219
[實例07] 打印人員名單 220
10.1.8 Thymeleaf內置對象 221
[實例08] 以不同形式打印當前日期 222
[實例09] 操作字符串內容 223
[實例10] 操作List、Set和Map類型的集合對象 224
[實例11] 讀取當前登錄的用戶名和請求中的消息 225
10.1.9 嵌入其他頁面文件 226
[實例12] 在主頁插入頂部的登錄菜單和底部的聲明頁面 227
10.1.10 其他配置 228
10.2 FreeMarke/ 229
10.2.1 添加依賴 229
10.2.2 添加配置 229
10.2.3 跳轉至頁面和傳遞參數 230
[實例13] 在主頁中顯示班級和老師姓名、年齡 230
10.2.4 指令 231
10.2.5 在網頁中聲明變量 233
[實例14] 使用assign指令定義西遊記師徒四人的基本信息 234
10.2.6 “?”和“!”的用法 235
[實例15] 使用??和!處理後端發送的值,防止出現空數據 236
10.2.7 內置函數 236
10.2.8 頁面中的條件判斷 240
[實例16] 根據學生各科成績給出優、良、及格、不及格評級 241
10.2.9 頁面中的循環 243
[實例17] 使用list指令展示圖書銷售排行榜 243
10.2.10 在網頁中聲明方法 245
[實例18] 為特惠活動中的圖書商品添加首尾標籤 246
10.2.11 嵌入其他頁面文件 247
[實例19] 使用FreeMarker嵌入頂部的登錄菜單和底部的聲明頁面 247
本章知識思維導圖 249

第11章 JSON解析器 250
11.1 Jackson 251
11.1.1 什麼是JSON 251
11.1.2 Jackson的核心API 252
11.1.3 將對象轉為JSON字符串 256
[實例01] 賬號密碼錯誤時返回JSON格式錯誤信息 258
11.1.4 將JSON字符串轉為實體對象 260
[實例02] 將JSON中的員工信息封裝成員工實體類 260
11.1.5 Spring Boot可自動將對象轉換成JSON 262
11.1.6 Jackson的註解 264
[實例03] 利用註解設定商品實體類的JSON格式 264
11.1.7 JSON數據的增刪改查 265
11.2 FastJson 268
11.2.1 添加FastJson依賴 268
11.2.2 對象與JSON字符串互轉 268
[實例04] 接受前端發來的JSON登錄數據,返回JSON登錄結果 269
11.2.3 @JSONField註解 270
11.2.4 FastJson對JSON數據進行增刪改查 272
本章知識思維導圖 278

第12章 WebSocket長連接 279
12.1 概念 280
12.1.1 短連接與長連接 280
12.1.2 WebSocket協議 280
12.2 端點 280
12.2.1 添加依賴 280
12.2.2 開啟自動註冊端點 281
12.2.3 創建服務器端點 281
12.2.4 Session會話對象 282
12.2.5 服務器端點的事件 284
12.3 頁面客戶端 286
12.3.1 JavaScript中的WebSocket對象 286
12.3.2 事件及觸發的方法 287
12.3.3 客戶端與服務端之間的觸發關係 287
12.4 一個簡單實例 288
[實例01] 頁面動態展示服務器回執 288
12.5 模擬手機掃碼登錄 291
[實例02] 模擬手機掃碼登錄 292
12.5.1 添加qrcode.js 292
12.5.2 模擬消息隊列 292
12.5.3 服務端實現 293
12.5.4 客戶端實現 294
12.5.5 控制器的實現 295
12.5.6 運行效果 295
12.6 網頁聊天室 297
[實例03] 網頁聊天室 297
12.6.1 添加JQuery 297
12.6.2 自定義會話組 297
12.6.3 服務端實現 298
12.6.4 客戶端實現 299
12.6.5 運行效果 300
本章知識思維導圖 302

第13章 上傳與下載 303
13.1 上傳文件 304
[實例01] 將圖片文件上傳至服務器 305
13.2 同時上傳多個文件 307
[實例02] 一次上傳文件至服務器 308
13.3 下載文件 310
[實例03] 根據URL地址下載不同的文件 311
13.4 提交Excel模板 312
13.4.1 添加POI依賴 312
13.4.2 讀取Excel文件的API 313
13.4.3 綜合實例 315
[實例04] 批量上傳考試成績 315
本章知識思維導圖 319

第3篇 框架整合篇
第14章 持久層框架——MyBatis 322
14.1 簡介 323
14.2 添加依賴 323
14.3 映射器Mappe/ 324
14.4 增、刪、改、查 325
14.4.1 @Select 326
[實例01] 將t_people表中的數據取出並封裝成實體類對象 328
14.4.2 @Insert、@Update和@Delete 330
[實例02] 向t_people表中添加新人員數據、修改新人員數據,再刪除此新人員數據 330
14.5 SQL語句構建器 332
14.5.1 SQL類 332
14.5.2 Provider系列註解 333
14.5.3 動態構建SQL 334
[實例03] 創建帶參數的接口方法,允許插入定義人員數據,並查詢指定姓氏的人員數據 335
14.6 SQL參數 337
[實例04] 創建開放式人員信息增刪改查映射器接口 339
14.7 結果映射 340
[實例05] 創建圖書館借書單實體列,將三表聯查結果封裝到借書單對像中 341
14.8 級聯映射 343
14.8.1 一對一 344
[實例06] 構建手機與電池的一對一關係 345
14.8.2 一對多 346
[實例07] 構建老師與學生的一對多關係 348
本章知識思維導圖 351

第15章 緩存中間件——Redis 352
15.1 Redis簡介 353
15.1.1 非關係型數據庫 353
15.1.2 Redis簡介 353
15.1.3 為什麼把Redis稱為緩存? 353
15.2 Windows系統搭建Redis環境 354
15.2.1 下載 354
15.2.2 啟動 355
15.3 Redis常用命令 357
15.3.1 基礎鍵值命令 357
15.3.2 哈希命令 361
15.3.3 列表命令 364
15.3.4 集合命令 367
15.4 Spring Boot訪問Redis 370
15.4.1 添加依賴 370
15.4.2 配置項 371
15.4.3 使用Jedis訪問Redis 371
[實例01] 高並發搶票服務 373
15.4.4 使用RedisTemplate訪問Redis 376
[實例02] 為視頻播放量排行榜添加緩存 379
本章知識思維導圖 384