內容提要
在《Spring Boot 2+Thymeleaf企業套用實戰》的前面部分,講解目前市面上流行的Spring Boot框架,使用該框架我們可以輕鬆構建出各種項目。在此基礎上,介紹Spring MVC的使用。學習完這些知識後,讀者可以掌握Spring Boot、Spring MVC的核心內容。在《Spring Boot 2+Thymeleaf企業套用實戰》的第二部分,會深入講解Thymeleaf框架,這是一個較為新穎的模板引擎。使用Thymeleaf,可以完全拋棄JSP,進入一種更為簡便的頁面開發模式。第11章講解目前市面上常見的幾個
JavaScript框架,例如jQuery、Bootstrap及Vue.js。學習完這些知識後,讀者可以使用這些框架開發大部分的頁面功能。第12章介紹如何使用Spring Data框架操作各個主流資料庫,例如MySQL、Redis和MongoDB等。第13章介紹如何使用Spring Cloud中的主要框架,學完本章知識後,讀者可以開發最基本的微服務項目。《Spring Boot 2+Thymeleaf企業套用實戰》的最後一章,以一個案例對所學知識進行運用。《Spring Boot 2+Thymeleaf企業套用實戰》定位為一本Java Web開發的入門級書籍,從表現層到持久層,力求為大家提供一整套Java Web開發的技術教程。
目錄
第1章 概述 1
1.1 Java EE開發技術 2
1.1.1 Java EE的三層架構 2
1.1.4 視圖技術 3
1.2 JDK的下載與安裝 3
1.3 安裝與配置Maven 4
1.3.1 關於Maven 4
1.3.2 下載與安裝Maven 4
1.3.3 配置遠程倉庫 5
1.4 安裝Eclipse 5
1.4.1 Eclipse版本 5
1.4.2 在Eclipse中配置Maven 5
1.4.3 獲取本書代碼 6
1.5 本章小結 6
第2章 初試Spring Boot 7
2.1 Spring Boot介紹 8
2.1.1 Spring Boot簡介 8
2.1.2 starter模組 8
2.2 構建第一個Spring Boot程式 9
2.2.1 新建Maven項目 9
2.2.2 編寫啟動類 10
2.2.3 編寫控制器 11
2.2.4 開發環境的熱部署 12
2.3 運行單元測試 12
2.3.1 測試Web服務 12
2.3.2 模擬Web測試 13
2.3.3 測試業務組件 13
2.3.4 模擬業務組件 14
2.4 發布與調用REST服務 15
2.4.1 REST 15
2.4.2 發布REST服務 15
2.4.3 使用RestTemplate調用服務 16
2.4.4 使用Feign調用服務 18
2.5 本章小結 19
第3章 Spring Boot配置 20
3.1 配置檔案 21
3.1.1 默認配置檔案 21
3.1.2 指定配置檔案 22
3.1.3 yml檔案 22
3.1.4 使用profile指定配置 23
3.2 Web配置 24
3.2.1 Servlet配置 24
3.2.2 Listener配置 25
3.2.3 Filter配置 26
3.2.4 構建可部署的war包 26
3.2.5 JSP配置 28
3.3 其他配置 30
3.3.1 伺服器常用配置 30
3.3.2 回響壓縮 30
3.3.3 SSL配置 32
3.3.4 使用其他伺服器 32
3.3.5 伺服器訪問日誌 33
3.3.6 banner配置 34
3.4 自定義配置 35
3.4.1 @Value註解 35
3.4.2 定義屬性映射對象 36
3.4.3 使用配置 37
3.4.4 屬性自動識別 38
3.5 本章小結 39
第4章 Spring Boot的註解 40
4.1 Spring的常用註解 41
4.1.1 bean定義 41
4.1.2 依賴注入 42
4.1.3 使用Primary註解 44
4.1.4 Scope註解 45
4.1.5 方法注入 46
4.1.6 AOP註解 47
4.1.7 ComponentScan註解 49
4.2 高級Spring註解 50
4.2.1 限定註解 50
4.2.2 自定義限定註解 51
4.2.3 自定義bean的生命周期 52
4.3 Spring MVC的常用註解 54
4.3.1 Controller註解 54
4.3.2 RequestMapping註解 55
4.3.3 PathVariable註解 56
4.3.4 MatrixVariable註解 56
4.3.5 RequestParam註解 57
4.3.6 檔案上傳 58
4.3.7 RestController註解 58
4.4 Spring Boot的條件註解 59
4.4.1 類條件註解 59
4.4.2 項目依賴問題 60
4.4.3 其他條件註解 61
4.4.4 自定義條件註解 61
4.4.5 Spring Boot的自動配置 62
4.5 本章小結 63
第5章 初試Thymeleaf 64
5.1 Thymeleaf 65
5.1.1 什麼是Thymeleaf 65
5.1.2 支持的模板類型 65
5.1.3 HTML模板 65
5.1.4 XML模板 66
5.2 初試Thymeleaf API 66
5.2.1 處理HTML 66
5.2.2 更換模板解析器 67
5.2.3 處理資源檔案 67
5.2.4 變數處理 68
5.2.5 遍歷集合 69
5.2.6 設定前綴與後綴 69
5.3 在Servlet套用中整合Thymeleaf 70
5.3.1 建立項目 70
5.3.2 配置模板引擎 71
5.3.3 在Servlet中使用Thymeleaf 72
5.3.4 編寫模板檔案 73
5.4 在Struts2中整合Thymeleaf 74
5.4.1 建立與配置Struts2項目 74
5.4.2 配置Struts Action 75
5.4.3 整合Themeleaf 76
5.5 在Spring Boot中整合Thymeleaf 77
5.5.1 建立與配置項目 77
5.5.2 編寫控制器與模板 78
5.5.3 靜態資源 79
5.6 本章小結 79
第6章 Thymeleaf對象的使用 80
6.1 文本處理 81
6.1.1 外部文本輸出 81
6.1.2 文本國際化 82
6.1.3 處理轉義文本 83
6.1.4 讀取變數 83
6.1.5 在文本信息中使用變數 84
6.1.6 其他讀取變數的方式 84
6.1.7 連結表達式 85
6.2 基本對象 86
6.2.1 基本對象概述 86
6.2.2 #ctx對象 87
6.2.3 Web對象 87
6.2.4 內置變數 88
6.2.5 使用基本對象的注意事項 88
6.3 數字對象 89
6.3.1 整數格式化 89
6.3.2 小數格式化 90
6.3.3 貨幣格式化 91
6.3.4 百分比格式化 92
6.3.5 使用sequence方法 92
6.4 字元串對象 92
6.4.1 toString與length方法 93
6.4.2 非空判斷與默認值處理 93
6.4.3 包含判斷 94
6.4.4 截取與替換 94
6.4.5 追加與拼接 95
6.4.6 分割與連線 96
6.4.7 大小寫轉換 96
6.4.8 字元串編碼與解碼 97
6.4.9 其他處理 98
6.5 日期對象 98
6.5.1 格式化日期 98
6.5.2 獲取日期欄位 99
6.5.3 創建日期 100
6.6 數組與集合對象 101
6.6.1 數組 101
6.6.2 List與Set 101
6.6.3 Map 101
6.7 其他內置對象 102
6.7.1 messages對象 102
6.7.2 uris對象 102
6.7.3 aggregates對象 103
6.8 本章小結 103
第7章 Thymeleaf常用語法 104
7.1 表達式語法之運算符 105
7.1.1 表達式常量 105
7.1.2 字元串拼接 106
7.1.6 無操作符 108
7.2 表達式語法進階 108
7.2.1 數據轉換 108
7.2.2 自定義數據轉換類 109
7.2.3 Spring Boot數據轉換 110
7.2.4 表達式預處理 112
7.2.5 表達式調用工具方法 113
7.3 屬性設定 114
7.3.1 使用th:attr 114
7.3.2 設定HTML節點屬性 114
7.3.3 屬性值拼接 115
7.3.4 HTML5屬性支持 115
7.4 條件判斷與數據疊代 116
7.4.1 條件判斷 116
7.4.2 switch case語法 117
7.4.3 使用th:each屬性 117
7.4.4 常見疊代類型 118
7.4.5 疊代狀態對象 118
7.4.6 數據延遲載入 120
7.4.7 在Spring Boot中使用延遲載入 121
7.4.8 星號表達式 121
7.5 本章小結 122
第8章 深入Thymeleaf模板 123
8.1 模板片斷 124
8.1.1 定義與引用模板片斷 124
8.1.2 片斷引用語法 125
8.1.3 選擇器的基礎語法 126
8.1.4 選擇器的其他語法 128
8.1.5 insert、replace與include的區別 128
8.1.6 含有變數的片斷引用 129
8.1.7 片斷塊引用 130
8.1.8 無操作符的使用 131
8.1.9 刪除模板 132
8.1.10 基本表達式總結 134
8.2 模板與邏輯分離 134
8.2.1 邏輯分離例子 134
8.2.2 邏輯分離配置 136
8.2.3 關聯節點的選擇 137
8.3 模板注釋 137
8.3.1 解析層注釋 138
8.3.2 原型注釋 139
8.4 內聯語法 139
8.4.1 使用內聯語法顯示文本 139
8.4.2 在JavaScript中使用內聯語法 140
8.4.3 在CSS中使用內聯語法 140
8.4.4 內聯語法注釋 141
8.4.5 內聯語法序列化 142
8.5 模板快取 143
8.5.1 開啟與配置快取 143
8.5.2 快取有效時間 145
8.6 本章小結 146
第9章 Thymeleaf原理與擴展 147
9.1 概念與接口介紹 148
9.1.1 方言 148
9.1.2 處理器 149
9.1.3 模板處理者 150
9.1.4 模板解析事件 150
9.1.5 節點與標籤 151
9.2 深入Thymeleaf模板處理 151
9.2.1 策略模式 151
9.2.3 合併使用策略模式與責任鏈模式 156
9.2.4 模板處理過程 159
9.2.5 模板事件 161
9.3 處理器 161
9.3.1 預處理器 161
9.3.2 後處理器 163
9.3.3 一般處理器 164
9.3.4 處理器優先權 165
9.3.5 標籤處理器 167
9.3.6 模型處理器 168
9.3.7 邊界處理器 170
9.3.8 其他處理器 170
9.4 Thymeleaf擴展 171
9.4.1 自定義標籤 171
9.4.2 自定義模板屬性 173
9.4.3 自定義內置對象 175
9.4.4 自定義執行屬性 176
9.5 本章小結 177
第10章 Spring Boot與Thymeleaf整合 178
10.1 在Spring Boot中配置Thymeleaf 179
10.1.1 模板引擎配置 179
10.1.2 Spring MVC視圖解析器 181
10.1.3 Thymeleaf視圖解析器 184
10.1.4 數據轉換配置 186
10.1.5 模板國際化 186
10.2 表單處理 188
10.2.1 表單提交 188
10.2.2 使用th:field屬性 189
10.2.3 HTML節點的id生成 190
10.2.4 實現label節點 192
10.2.5 在模板中處理checkbox與radio 193
10.2.6 表單提交處理checkbox與radio 195
10.3 表單驗證 195
10.3.1 表單驗證 195
10.3.2 修改信息檔案 197
10.3.3 輸出錯誤信息 197
10.4 片斷的使用 198
10.4.1 引用片斷 198
10.4.2 使用bean選擇片斷 199
10.4.3 在控制器中引用片斷 201
10.5 自定義標籤 201
10.5.1 方言與處理器 201
10.5.2 配置方言 203
10.6 本章小結 204
第11章 使用JavaScript庫 205
11.1 使用jQuery 206
11.1.1 概述 206
11.1.2 選擇器 206
11.1.3 事件 207
11.1.4 數據列表 208
11.1.5 AJAX調用GET方法 209
11.1.6 AJAX調用POST方法 210
11.1.7 表單驗證 211
11.2 Bootstrap 213
11.2.1 概述 213
11.2.2 數據列表 214
11.2.3 分頁 215
11.2.4 表單 218
11.2.5 警告框的使用 219
11.3 Vue.js 221
11.3.1 概述 221
11.3.2 組件 222
11.3.3 指令 224
11.3.4 循環指令 225
11.3.5 表單驗證 226
11.4 本章小結 227
第12章 資料庫實戰 228
12.1 概述 229
12.1.1 關於Spring Data 229
12.1.2 Spring Data的功能 229
12.1.3 Spring Data模組 230
12.2 Spring Data與JPA 230
12.2.1 構建項目 230
12.2.2 數據訪問層與業務層 231
12.2.3 自定義數據存儲邏輯 233
12.2.4 方法名查詢 233
12.2.5 使用@Query註解 234
12.3 Spring Data與MongoDB 235
12.3.1 安裝MongoDB 235
12.3.2 配置許可權 236
12.3.3 MongoDB的相關概念 236
12.3.4 構建項目 236
12.3.5 數據訪問層與業務層 237
12.3.6 自定義數據存儲邏輯 238
12.3.7 方法名查詢 239
12.3.8 使用@Query註解 240
12.4 Spring Data與Redis 241
12.4.1 Redis的安裝與配置 241
12.4.2 Redis的數據類型 242
12.4.3 使用Jedis 242
12.4.4 構建Spring Data項目 243
12.4.5 數據訪問層與業務層 244
12.4.6 自定義數據存儲邏輯 246
12.4.7 方法名查詢 247
12.5 本章小結 247
第13章 開發微服務 248
13.1 微服務與Spring Cloud 249
13.1.1 微服務簡介 249
13.1.2 Netflix與Spring Cloud 249
13.1.3 Spring Cloud模組介紹 250
13.2 Eureka服務治理 250
13.2.1 Eureka架構 250
13.2.2 構建伺服器 251
13.2.4 服務調用者 255
13.2.5 程式結構 257
13.3 Ribbon負載均衡 257
13.3.1 Ribbon介紹 258
13.3.2 第一個Ribbon程式 258
13.3.3 在Spring Cloud中測試使用 Ribbon 259
13.4 客戶端Feign 260
13.4.1 Feign介紹 260
13.4.2 第一個Feign程式 260
13.4.3 使用Feign調用微服務 262
13.5 容錯框架Hystrix 263
13.5.1 Hystrix介紹 263
13.5.2 第一個Hystrix程式 265
13.5.3 在Spring Cloud中整合Hystrix 266
13.6 本章小結 268
第14章 實戰案例 269
14.1 系統功能及界面 270
14.1.1 登錄與首頁 270
14.1.2 圖書管理模組 271
14.1.3 入庫模組 272
14.1.4 銷售模組 273
14.1.5 導航組件與分頁組件 274
14.1.6 運行本章案例 275
14.2.1 用戶表 275
14.2.2 圖書表與庫存表 275
14.2.3 入庫單數據表 276
14.2.4 銷售單數據表 276
14.3 搭建項目框架 277
14.3.1 項目依賴與項目結構 277
14.3.2 項目配置 278
14.3.3 實體設計 279
14.3.4 用戶登錄 281
14.3.5 片斷定義 282
14.4 圖書管理 283
14.4.1 數據列表 283
14.4.2 通用的分頁組件 285
14.4.3 圖片上傳 286
14.4.4 新建圖書 288
14.4.5 查看與修改圖書 289
14.4.6 刪除圖書 290
14.5 銷售單模組 291
14.5.1 列表與分頁功能 291
14.5.2 選擇圖書 293
14.5.3 刪除已選圖書與修改數量 295
14.5.4 新建銷售單 297
14.5.5 操作庫存 299
14.6 首頁數據查詢與排序 300
14.6.1 庫存查詢 300
14.6.2 圖書查詢與輪播 301
14.6.3 數據排序 303
14.7 本章小結 304
作者簡介
楊恩雄,從事十多年Java EE企業套用開發,曾任中企動力系統設計師、中企開源項目經理、數碼辰星科技公司項目經理,參與多個企業OA、ERP項目的設計與架構工作,在大數據套用、SOA、網際網路產品方面有著豐富的開發經驗及架構經驗,曾著《瘋狂工作流講義》《瘋狂Spring Cloud微服務架構實戰》等書籍。