內容簡介
採用“項目貫穿式”的形式編寫,從一個實戰項目入手,將知識點融入其中,循序漸進地全面介紹Spring Boot和Vue的知識點
圖書目錄
第1章 Spring Boot入門 1
1.1 Spring Boot介紹 1
1.1.1 Spring Boot特性 3
1.1.2 Spring Initializr 3
1.2 開發環境 4
1.2.1 JDK 5
1.2.2 Maven 5
1.2.3 Git 5
1.2.4 MySQL 5
1.2.5 Eclipse 6
1.2.6 STS 6
1.2.7 Intellij IDEA 6
1.2.8 IDEA中集成Maven 8
1.3 Spring Boot案例 8
1.3.1 創建項目 9
1.3.2 項目結構 14
1.3.3 第一個案例 17
1.4 Spring Boot Test 18
1.4.1 環境配置 18
1.4.2 單元測試 18
1.5 項目需求與設計 19
1.5.1 Alan人事管理系統 20
1.5.2 技術選型 20
1.5.3 員工管理模組和部門管理模組 21
1.5.4 許可權管理模組 22
1.5.5 資料庫設計 23
1.5.6 實體類設計 24
1.5.7 界面設計 26
1.6 本章總結 27
第2章 SSM框架 28
2.1 創建SSM項目 29
2.1.1 創建Maven Module 29
2.1.2 配置SSM依賴 31
2.2 SSM整合 34
2.2.1 項目結構 34
2.2.2 配置檔案詳解 36
2.3 MyBatis 39
2.3.1 解耦合 40
2.3.2 參數 42
2.3.3 關聯關係 45
2.3.4 動態語句 48
2.3.5 DAO層設計 49
2.4 Spring 50
2.4.1 DI 50
2.4.2 AOP 51
2.4.3 對DAO層和Service層支持 52
2.4.4 Service設計 53
2.5 Spring MVC 54
2.5.1 URL映射 54
2.5.2 接收參數 56
2.5.3 轉發、重定向、回響JSON 57
2.5.4 Controller 設計 60
2.6 JSP 62
2.7 部署項目 66
2.7.1 配置Tomcat 66
2.7.2 運行訪問 67
2.8 本章總結 68
第3章 傳統Web前端設計 69
3.1 前端設計介紹 69
3.1.1 網頁設計技術 70
3.1.2 網站通信技術 72
3.2 複製搭建項目 73
3.3 Bootstrap 75
3.3.1 靜態檔案引用規則 76
3.3.2 柵格化 76
3.3.3 控制項 77
3.3.4 Bootstrap項目實戰 77
3.4 jQuery 79
3.4.1 常用API 79
3.4.2 jQuery項目實戰 80
3.5 iframe頁面復用技術 82
3.6 AJAX 84
3.6.1 AJAX特性 85
3.6.2 AJAX項目實戰 86
3.6.3 模態框 88
3.6.4 JavaScript UI介紹 89
3.7 本章總結 91
第4章 Spring Boot實戰與原理 92
4.1 Spring Boot開發 92
4.1.1 項目結構 92
4.1.2 處理JSP 95
4.2 配置檔案 98
4.2.1 properties和YAML 99
4.2.2 Java Config 101
4.3 Spring Boot項目運行 103
4.3.1 內置Web容器 103
4.3.2 熱部署 104
4.3.3 啟動類 105
4.4 Spring Boot常用推薦技術 106
4.4.1 HikariCP資料庫連線池 106
4.4.2 Logback日誌 108
4.5 Spring Boot原理與源碼分析 112
4.5.1 依賴與版本管理 112
4.5.2 @SpringBootApplication註解 114
4.5.3 Spring Boot啟動流程 115
4.6 本章總結 122
第5章 Thymeleaf 123
5.1 顯示層技術演變 123
5.1.1 靜態網頁 123
5.1.2 CGI 124
5.1.3 Servlet 124
5.1.4 JSP 125
5.1.5 模板引擎 126
5.1.6 模板引擎對比 127
5.1.7 前後端分離 128
5.2 Thymeleaf介紹 129
5.2.1 Thymeleaf特點 129
5.2.2 環境搭建 130
5.3 Thymeleaf詳解 132
5.3.1 指令與顯示 132
5.3.2 表達式 133
5.3.3 表達式運算 134
5.3.4 選擇分支 136
5.3.5 循環 137
5.3.6 設定屬性值 138
5.3.7 CSS修飾 140
5.3.8 片段 141
5.4 Thymeleaf高級特性 141
5.4.1 全局工具對象 141
5.4.2 內聯操作 143
5.5 Thymeleaf項目實戰 144
5.5.1 顯示頁面 144
5.5.2 新增頁面 145
5.5.3 修改頁面 146
5.6 本章總結 147
第6章 Spring Data JPA 148
6.1 相關技術介紹 148
6.1.1 Spring Data 148
6.1.2 Hibernate 149
6.1.3 JPA 150
6.1.4 Spring Data JPA 150
6.2 Spring Data JPA詳解 151
6.2.1 環境搭建 151
6.2.2 實體類 152
6.2.3 Repository接口 154
6.2.4 基本增刪改查 156
6.2.5 方法命名查詢 158
6.2.6 JPQL 159
6.3 關聯關係 163
6.3.1 多對一 163
6.3.2 一對多 167
6.3.3 多對多 170
6.4 Spring Data JPA項目實戰 171
6.4.1 實體類開發 171
6.4.2 DAO層開發 174
6.4.3 Service層及動態條件查詢 174
6.4.4 視圖層開發 176
6.5 本章總結 180
第7章 Redis 181
7.1 Redis介紹 181
7.1.1 Redis特點 182
7.1.2 Redis數據結構 182
7.2 Redis詳解 183
7.2.1 安裝Redis 183
7.2.2 Redis命令 183
7.3 Spring Boot操作Redis 185
7.3.1 Spring Data Redis 185
7.3.2 Redis Repository 191
7.4 Spring Cache 196
7.4.1 Spring Cache介紹 197
7.4.2 Spring Cache詳解 197
7.4.3 Spring Cache項目實戰 199
7.5 本章總結 202
第8章 Spring Security 203
8.1 安全框架 203
8.1.1 安全框架比較 204
8.1.2 RBAC詳解 204
8.1.3 Spring Security環境配置 207
8.2 認證 207
8.2.1 YAML存儲用戶 208
8.2.2 Spring Security Config 208
8.2.3 配置登錄 210
8.2.4 記憶體式用戶 213
8.2.5 資料庫式用戶 214
8.2.6 加密技術 215
8.3 授權 219
8.3.1 授權配置 219
8.3.2 Config方式 223
8.3.3 註解方式 225
8.3.4 過濾URL方式 226
8.4 視圖層控制 230
8.5 本章總結 231
第9章 Vue基礎 233
9.1 Vue介紹 233
9.1.1 MVVM思想 234
9.1.2 前端三大框架介紹 235
9.2 DOM編程與MVVM編程對比 235
9.2.1 改變元素內容案例 235
9.2.2 表單與表格案例 238
9.3 Vue語法 240
9.3.1 Vue對象和文本渲染 240
9.3.2 選擇分支 241
9.3.3 循環 243
9.3.4 CSS處理 244
9.3.5 事件 245
9.3.6 表單 246
9.4 Vue項目實戰 247
9.4.1 Vue環境搭建 247
9.4.2 員工展示 248
9.4.3 條件查詢 250
9.4.4 選中表格數據 251
9.4.5 改造按鈕與刪除員工 252
9.4.6 新增員工 253
9.4.7 修改員工 254
9.5 本章總結 254
第10章 RESTful 255
10.1 RESTful介紹 256
10.1.1 RESTful原則 256
10.1.2 RESTful風格URL 258
10.2 Spring MVC RESTful支持 258
10.3 RESTful項目實戰 261
10.4 測試接口 265
10.4.1 HTTP Client可視化測試 265
10.4.2 HTTP Client腳本測試 267
10.5 接口文檔生成工具 268
10.5.1 Swagger 269
10.5.2 Swagger項目實戰 270
10.5.3 Spring REST Docs 273
10.5.4 Spring REST Docs項目實戰 273
10.6 本章總結 277
第11章 前端工程化 278
11.1 前端工程化簡介 278
11.1.1 前端工程化的必要性 278
11.1.2 前端工程化的現狀 279
11.2 前端工程化技術概覽 280
11.2.1 ECMAScript 280
11.2.2 NodeJS 280
11.2.3 npm 281
11.2.4 Webpack 281
11.2.5 Babel 281
11.2.6 Vue CLI 282
11.3 ECMAScript語法 282
11.3.1 let和const 282
11.3.2 定義對象 283
11.3.3 import和export 285
11.3.4 箭頭函式 286
11.4 Vue前端工程化環境搭建 288
11.4.1 NodeJS 288
11.4.2 npm 288
11.4.3 Webpack 288
11.4.4 Vue CLI 289
11.4.5 WebStorm 289
11.5 創建Vue項目 289
11.5.1 Vue CLI命令行 289
11.5.2 Vue項目歡迎頁面代碼解析 295
11.6 本章總結 298
第12章 Vue高級 299
12.1 組件 299
12.1.1 定義組件 300
12.1.2 復用組件 301
12.1.3 組件傳參 304
12.2 路由 307
12.2.1 定義路由 307
12.2.2 路由跳轉 309
12.2.3 嵌套路由 312
12.2.4 路由傳參 313
12.3 axios 313
12.4 前後端分離項目實戰 315
12.4.1 創建前端項目 315
12.4.2 引入依賴 316
12.4.3 員工管理模組 318
12.4.4 解決跨域問題 319
12.4.5 Index組件 320
12.5 本章總結 322
第13章 Element UI 323
13.1 Element UI介紹 323
13.1.1 Element UI特點 324
13.1.2 Element UI案例 324
13.1.3 搭建環境 325
13.2 Element UI 項目實戰 326
13.2.1 首頁布局 326
13.2.2 導航欄 328
13.2.3 表格 329
13.2.4 查詢表單 331
13.2.5 按鈕 333
13.2.6 彈出框提示 334
13.2.7 新增員工表單 335
13.2.8 自消失彈出框 336
13.3 本章總結 338
第14章 SPA富客戶端 339
14.1 SPA介紹 339
14.1.1 SPA優缺點 340
14.1.2 富客戶端設計 340
14.2 富客戶端項目實戰 341
14.2.1 Index視圖組件開發 341
14.2.2 標籤頁設計 342
14.2.3 標籤頁最佳化 344
14.2.4 彈出框 346
14.2.5 員工組件重新設計 347
14.2.6 組件解耦重構 350
14.3 本章總結 353
第15章 前後端分離許可權處理 354
15.1 跨域資源共享 354
15.1.1 跨域引發項目問題 354
15.1.2 瀏覽器同源策略 357
15.2 反向代理 358
15.2.1 反向代理原理 358
15.2.2 ProxyTable 359
15.3 CORS 360
15.3.1 CORS原理 360
15.3.2 CORS項目實戰 362
15.4 JWT 364
15.4.1 JWT原理 366
15.4.2 JWT項目實戰 367
15.4.3 axios攔截器 374
15.5 前端界面級許可權控制 376
15.5.1 註銷 377
15.5.2 選單級許可權 377
15.6 Vuex 381
15.7 本章總結 383
第16章 項目完善及補充技術 384
16.1 分頁 384
16.1.1 後端實現 384
16.1.2 前端實現 387
16.2 CreateTime和ModifyTime 389
16.3 檔案上傳 390
16.3.1 Spring MVC接收檔案 391
16.3.2 表單上傳檔案 393
16.3.3 AJAX上傳檔案 395
16.3.4 前後端分離上傳檔案 397
16.4 Lombok 399
16.5 任務調度 402
16.5.1 Spring Task 402
16.5.2 Quartz 408
16.6 Hash和History 412
16.6.1 Hash和History的原理 413
16.6.2 History項目實戰 414
16.7 本章總結 415
第17章 部署 416
17.1 前端部署 416
17.1.1 Vue打包與後端混合部署 416
17.1.2 Nginx部署 417
17.2 後端部署 419
17.3 Linux部署 420
17.3.1 VMware安裝CentOS 420
17.3.2 安裝運行環境 423
17.3.3 部署運行項目 426
17.4 最終項目展示 428
17.5 本章總結 429
作者簡介
朱建昕曾在世界五百強公司、國內上市軟體公司從事開發、架構、管理等工作,專注Java開發十餘年。