隨著Java Web項目的發展,各種開發框架與組件層出不窮,項目的配置越來越煩瑣,項目部署也需耗費大量時間,給開發人員帶來了諸多不便。Spring Boot的出現將開發人員從煩瑣的項目配置中解放出來,讓開發人員更專注于業務的實現,提高了開發效率。本書從Spring Boot項目實戰的角度出發講解Spring Boot的原理與整合使用,包括每個項目所使用的技術與編碼實現過程。本書配套示例項目源碼和PPT課件。 本書分為7章。第1章主要介紹Spring Boot的特性、核心模塊、開發環境配置與簡單使用,同時對Spring Boot源碼進行簡單分析;第2~7章主要介紹實戰項目(包括員工管理系統、二手房管理系統、購物車管理、用戶權限管理系統、小程序上報用戶信息、模擬聊天室),每個典型的實戰項目,都遵循項目的需求、設計以及實現流程,講解項目的開發流程、使用技術和實現方法,同時介紹所用新工具的安裝和使用,并對每一個項目做出簡單總結。 本書內容由淺到深、解析詳細、示例豐富,從實戰角度指導讀者使用Spring Boot進行項目開發,適合Spring Boot初學者快速入門以及具有一定經驗的開發者提高技術整合能力,同時也適合作為高等院校相關專業的教材。
本書從Spring Boot項目實戰的角度出發,講解Spring Boot的原理與整合使用,包括六個典型項目所使用的技術與編碼實現過程。本書適合Spring Boot初學者以及整合不同技術開發實際項目的開發人員。
為什么要寫這本書
隨著互聯網的飛速發展,各種基于互聯網的系統深入我們的工作、學習、生活等方面。我們正在大力發展的智慧政務、智能家居、智慧城市等,都離不開專業開發技術的支持。目前Java Web開發的項目在各行各業都有廣泛的應用。Java Web項目的開發會基于各種各樣的框架,目前較流行的是Spring框架,其他框架和組件也都做了適應和擴展。一個項目的實現,特別是復雜的大型綜合性項目,所用到的框架更是數不勝數。而框架在融合的過程中會遇到各種各樣的配置問題,例如版本不兼容、版本沖突、依賴缺失等,所以在Java Web項目開發過程中,框架整合顯得越來越重要,也越來越煩瑣。有鑒于此,Spring團隊設計并實現了Spring Boot腳手架。它相當于一個開發容器,我們可以按需拉取框架和組件,而不需要增加讓人煩惱的配置文件或配置類。它會自動為我們的框架選擇合適的配置并應用到容器。當然,我們也可以進行自定義配置。這個工具對開發者來說無疑是個福音,可以讓千萬開發者從煩瑣的配置工作中解放出來,專注于業務邏輯的實現,使得開發效率得到大大的提高。
對一個Java Web開發人員來說,學習如何使用Spring Boot框架顯得極為重要。這不僅能夠提高自身的開發效率,更能增加系統的穩定性。本書就是基于此目的,從項目實戰的角度為開發者講解Spring Boot的框架組成、實現原理以及使用方法。通過一個個典型的項目應用,根據項目的側重點來整合不同框架到項目中,利用每個框架技術的特點來實現項目業務邏輯,手把手地將項目的設計開發過程展示給讀者。整本書的內容淺顯易懂,講解詳細全面,是一本非常好的Spring Boot初學者的讀物。
目前適用于初學者學習Spring Boot的書籍有許多,每一本書的側重點不同。本書是在實戰過程中逐步講解技術知識點和應用場景,以及對應項目中的實踐應用,將理論結合于實踐,讓讀者加深理解,深入學習。對于初學者來說,如果想了解Spring Boot的技術原理,熟悉它的應用場景并能使用它實現相應的功能,這本書非常適用。對開發經驗不夠豐富的開發人員來說,本書案例整合了不同的技術,能提高他們在不同場景下采用不同技術來快速選型并實現項目的整合能力。
本書有何特色
(1)附帶項目源代碼,提高學習效率。為了便于讀者理解本書內容,提高學習效率,筆者專門為本書的每一章內容都提供了項目源代碼。
(2)涵蓋Spring Boot開發Web項目的各種熱門技術、主流框架、數據庫及其整合使用。本書涵蓋Spring Boot、Spring、Spring MVC、Spring Data JPA、MyBatis、MyBatis Plus、Redis、MySQL、H2、PostgreSQL、Spring Security、Shrio、JWT、WebSocket、Thymeleaf等主流框架的整合使用。
(3)涵蓋多種前端CSS、JS框架。本書涵蓋了多種涉及前端的框架的使用,包括Vue、Node.js、LayUI、Element UI、uni-app等。
(4)涉及多種開發工具的安裝和使用。本書在前后端的開發過程中使用到了多種開發工具,演示了它們的安裝過程和基本使用方法,例如IntelliJ IDEA、HBuiderX、微信開發者工具等。
(5)項目案例驅動,應用性強。本書從第2章開始,每章都提供一個使用Spring Boot開發的項目典型案例,這些案例來源于筆者實際工作過程中所遇到的應用場景,具有較高的實戰價值和參考性。這些案例都是在Spring Boot開發框架下根據業務特點整合了不同技術和框架,能夠幫助讀者在學習基礎知識的同時,快速掌握以后開發中常用到的技術功能。讀者在參考本書的同時,能夠融會貫通地應用所學到的技術,將理論技術應用于實戰開發中,快速提升理論與實戰結合的開發經驗。另外讀者可以自行發揮思維,補充拓展,增加一些其他的功能,或者在原有代碼基礎上進行修改,便可用于實際的項目開發中。
(6)提供完善的技術支持和售后服務。本書提供了專門的技術支持郵箱,讀者在閱讀本書的過程中有任何疑問都可以通過該郵箱獲得幫助。
本書內容及知識體系
第1章Spring Boot入門。本章主要介紹Spring Boot的特性、核心模塊、開發環境配置和Spring Boot的使用,并對Spring Boot的源碼進行分析。
第2章員工管理系統。本章主要介紹如何使用Spring Boot配置MySQL數據庫、集成MyBatis插件,以及如何使用它們完成典型的員工管理系統,并使用LayUI框架搭建并實現配套的前端 項目。
第3章二手房管理系統。本章主要介紹如何使用Spring Boot集成Spring Data JPA,以及前端中Node.js、Vue和Element UI的介紹和使用。
第4章購物車管理。本章主要介紹如何使用Spring Boot集成H2數據庫、Thymeleaf模板和Spring Security,介紹這些框架的概念、功能與使用方法,綜合使用這些框架完成購物車的管理。
第5章用戶權限管理系統。本章主要介紹如何使用Spring Boot集成Shrio框架、配置PostgreSQL數據庫,以及如何使用Shrio完成權限校驗。
第6章使用小程序上報用戶信息。本章主要介紹如何使用Spring Boot集成JWT、MyBatis-Plus框架,如何使用MyBatis-Plus進行數據庫操作,如何使用JWT進行登錄認證,以及如何實現小程序登錄。
第7章模擬聊天室。本章主要介紹如何使用Spring Boot集成WebSocket,并做對應的配置,如何使用WebSocket協議進行前后端消息交互,實現模擬聊天室功能。
適合閱讀本書的讀者
? 需要學習Java Web開發技術的人員。
? 需要學習Spring Boot框架的使用方法的開發人員。
? 希望整合不同技術、提高項目開發水平的Spring Boot開發人員。
? 希望借鑒項目案例的開發人員。
? 軟件開發項目經理。
? 專業培訓機構的學員。
? 高等院校計算機相關專業的學生。
配套示例項目源碼、PPT課件下載
本書配套示例項目源碼、PPT課件,需要用微信掃描下面的二維碼獲取,可按掃描后的頁面提示填寫你的郵箱,把下載鏈接轉發到郵箱中下載。如果下載有問題或閱讀中發現問題,請用電子郵件聯系booksaga@163.com,郵件主題寫Spring Boot整合開發案例實戰。
筆 者
2023年1月
顏井贊,山東曲阜人,上海漢生科技副總裁。曾任東軟集團軟件項目經理、中科院計算所濟寧分所高級軟件工程師、大象醫療技術總監。15年軟件研發經驗,擅長Java、Python開發,參與開發國家電網等多個大型項目。在Java項目開發過程中,接觸過眾多框架與組件,尤其擅長Spring Boot框架的應用開發。
第 1 章 Spring Boot入門 1
1.1 Spring Boot介紹 1
1.1.1 Spring Boot簡介 1
1.1.2 Spring Boot核心模塊 3
1.2 開發環境配置 10
1.2.1 安裝與配置JDK 10
1.2.2 安裝IntelliJ IDEA 13
1.2.3 安裝Maven 14
1.2.4 安裝MySQL 15
1.3 使用Spring Boot 19
1.3.1 快速搭建一個項目 19
1.3.2 運行發布項目 21
1.4 Spring Boot源碼分析 25
1.4.1 入口類@SpringBootApplication 25
1.4.2 深入理解自動配置 27
1.5 本章小結 29
第 2 章 員工管理系統 30
2.1 項目技術選型 30
2.1.1 MyBatis 30
2.1.2 框架搭建 32
2.2 項目前期準備 36
2.2.1 項目需求說明 36
2.2.2 系統功能設計 37
2.2.3 系統數據庫設計 37
2.2.4 系統文件說明 38
2.3 項目前端設計 39
2.3.1 登錄注冊 39
2.3.2 部門管理 42
2.3.3 員工信息管理 44
2.3.4 工資管理 49
2.3.5 考勤記錄管理 52
2.4 項目后端實現 53
2.4.1 通用分頁類 53
2.4.2 通用返回結果 57
2.4.3 登錄/注冊 57
2.4.4 部門管理 61
2.4.5 員工信息管理 63
2.4.6 工資管理 64
2.4.7 考勤記錄管理 65
2.5 項目總結 68
第 3 章 二手房管理系統 69
3.1 項目技術選型 69
3.1.1 Spring Data JPA 69
3.1.2 Node.js 73
3.1.3 Vue和Element UI 75
3.1.4 框架搭建 76
3.2 項目前期準備 79
3.2.1 項目需求說明 79
3.2.2 系統功能設計 80
3.2.3 系統數據庫設計 81
3.2.4 系統文件說明 87
3.3 項目前端設計 88
3.3.1 登錄 88
3.3.2 二手房房源管理 91
3.3.3 樓盤信息管理 92
3.3.4 房源信息管理 95
3.3.5 樓盤動態管理 96
3.3.6 認購管理 97
3.3.7 銷售管理 98
3.3.8 認籌管理 99
3.3.9 樓盤收藏管理 100
3.3.10 系統管理與系統設置 100
3.4 項目后端實現 105
3.4.1 通用類 105
3.4.2 登錄 109
3.4.3 二手房房源管理 109
3.4.4 樓盤信息管理 111
3.4.5 房源信息管理 113
3.4.6 文件操作 114
3.4.7 其他功能管理 116
3.5 項目總結 116
第 4 章 購物車管理系統 118
4.1 項目技術選型 118
4.1.1 Spring Security 118
4.1.2 H2數據庫 122
4.1.3 Thymeleaf 129
4.1.4 框架搭建 135
4.2 項目前期準備 140
4.2.1 項目需求說明 140
4.2.2 系統功能設計 140
4.2.3 系統數據庫設計 140
4.2.4 系統文件說明 141
4.3 項目前端設計 142
4.3.1 登錄 142
4.3.2 注冊 144
4.3.3 商品展示頁面 145
4.3.4 購物車頁面 147
4.3.5 通用導航 148
4.3.6 通用分頁 149
4.3.7 安全校驗錯誤頁面 149
4.4 項目后端實現 150
4.4.1 登錄與登錄認證 150
4.4.2 注冊與參數驗證 157
4.4.3 異常處理 160
4.4.4 安全校驗 163
4.4.5 商城首頁 164
4.4.6 購物車與訂單相關 165
4.5 項目總結 169
第 5 章 用戶權限管理系統 171
5.1 項目技術選型 171
5.1.1 Shrio權限認證框架 171
5.1.2 PostgreSQL數據庫 179
5.1.3 框架搭建 195
5.2 項目前期準備 198
5.2.1 項目需求說明 198
5.2.2 系統功能設計 198
5.2.3 系統數據庫設計 199
5.2.4 系統文件說明 201
5.3 項目前端設計 202
5.3.1 登錄 202
5.3.2 控制臺首頁 205
5.3.3 操作賬號管理 207
5.3.4 菜單管理 208
5.3.5 按鍵管理 209
5.3.6 組織管理 209
5.3.7 角色管理 210
5.3.8 類型管理 210
5.3.9 分頁展示 211
5.4 項目后端實現 211
5.4.1 登錄認證和權限認證 211
5.4.2 驗證碼生成 215
5.4.3 操作賬號管理 216
5.4.4 菜單管理 218
5.4.5 組織管理 219
5.4.6 其他管理 221
5.5 項目總結 221
第 6 章 使用小程序上報用戶信息 223
6.1 項目技術選型 223
6.1.1 MyBatis-Plus框架 223
6.1.2 JWT 235
6.1.3 HbuilderX簡介 237
6.1.4 小程序客戶端項目搭建 239
6.1.5 微信開發者工具 241
6.1.6 后臺服務框架搭建 242
6.2 項目前期準備 252
6.2.1 項目需求說明 252
6.2.2 系統功能設計 252
6.2.3 系統數據庫設計 253
6.2.4 系統文件說明 258
6.3 項目前端設計 259
6.3.1 首頁 259
6.3.2 我的 260
6.3.3 微信一鍵登錄 260
6.3.4 完善信息 261
6.3.5 底部導航欄 262
6.4 項目后端實現 263
6.4.1 JWT登錄認證 263
6.4.2 登錄與注冊 264
6.4.3 獲取信息 266
6.4.4 完善或修改信息 267
6.5 項目總結 268
第 7 章 模擬聊天室 269
7.1 項目技術選型 269
7.1.1 WebSocket 269
7.1.2 框架搭建 280
7.2 項目前期準備 282
7.2.1 項目需求說明 282
7.2.2 系統功能設計 282
7.2.3 系統數據庫設計 282
7.2.4 系統文件說明 283
7.3 項目前端設計 284
7.3.1 登錄與退出 284
7.3.2 聊天室主頁面 284
7.3.3 群發消息 286
7.3.4 給指定用戶單獨發送消息 286
7.3.5 上線與下線 288
7.4 項目后端實現 289
7.4.1 上線與下線 289
7.4.2 發送消息 292
7.4.3 獲取當前在線用戶列表 293
7.5 項目總結 294