內容簡介
本書主要講解Java EE框架MyBatis、Spring和Spring MVC的核心開發技術,幫助讀者進行“促遙辯精要”式的學習和項目實戰,同時汲取Java EE的思想,並最終將其靈活運用到實際工作中。
全書內容共7章,分別對MyBatis、Spring和Spring MVC的基礎知識與核心技術實現進行了詳細的描述。書中鴉辯頁利用大量篇幅介紹了Spring中的DI與AOP,這兩種技術是
Spring框架的內部原理,掌握它們是學習Spring的重中之重。另外,本書還系統解析了MyBatis+Spring+Spring
MVC框架的整合,並介紹蜜龍歸了如何使用Spring Boot開發Web軟體項目。
本書適用於已具有一定Java編程基礎的讀者,包括具有Servlet編程經驗,鑽故勸察以及在
Java平台下進行各類軟體開發的開發人員、測試人員等。
圖書目錄
第 1章 MyBatis 3核心技術之必備技能 1
1.1 什麼是框架 1
1.3 MyBatis的優勢 2
1.4 ORM的原理實現 3
1.4.1 使用JDBC和反射技術實現泛型DAO 3
1.5 準備MyBatis的開發環境 15
1.5.1 下剃譽頌載Eclipse 15
1.5.2 下載MyBatis 15
1.5.3 在Eclipse中創建Library庫 17
1.5.4 創建Java項目並引用Library庫 19
1.6 創建SqlSessionFactory和SqlSession對象 20
1.6.1 XML配置檔案模隻影炒船板 20
1.6.2 使用XML配置檔案創建SqlSessionFactory對象 21
1.6.3 創建SqlSession對象 23
1.6.4 SqlSessionFactoryBuilder和SqlSessionFactory的API 24
1.7 在Eclipse中安裝MyBatis Generator外掛程式 25
1.8.1 進行逆向操作 28
1.8.2 運算元據庫 30
1.9 使用MyBatis Generator工具逆向的代碼操作
MySQL資料庫 33
1.9.1 進行逆向操作 33
1.9.2 運算元據庫 35
1.10 自建環境使用SqlSession操作Oracle和MySQL資料庫 36
1.10.1 針對Oracle的CURD 36
1.10.2 針對MySQL的CURD 41
1.10.3 向SQL映射傳入參數類型 44
1.10.4 從SQL映射取得返回值類型 49
1.10.5 SQL映射檔案中命名空間的作用 52
1.11 自建環境使用Mapper接口操作Oracle和MySQL資料庫 53
1.11.1 接口-SQL映射的對應關係 54
1.11.2 針對Oracle的CURD 55
1.11.3 針對MySQL的CURD 59
1.11.4 向Mapper接口傳入參數類型 62
1.11.5 從SQL映射取得返回值類型 70
1.12 MyBatis核心對象的生命周期與封裝 74
1.12.1 創建GetSqlSessionFactory類 75
1.12.2 創建GetSqlSession類 76
1.12.3 創建SQL映射接口 76
1.12.4 創建SQL映射檔案 76
1.12.6 添加記錄及異常回滾的測試 78
第 2章 MyBatis 3核心技術之實戰技能 80
2.1 結合Log4j實現輸出日誌 80
2.1.1 結合Log4j 1實現輸出日誌 80
2.1.2 結合Log4j 2實現輸出日誌 82
2.2 SQL語句中特殊符號的處理 83
2.3 使用typeAliases配置別名 84
2.3.1 系統預定義別名 84
2.3.2 使用單獨配置自定義別名 86
2.3.3 使用批量配置自定義別名 87
2.3.4 別名重複的解決辦法 88
2.4 使用properties保存資料庫信息 89
2.4.1 使用配置內部屬性值 89
2.4.2 使用引用外臭晚部properties屬性檔案中的配置 90
2.4.3 使用程式代碼讀取properties檔案中的參數 90
2.4.4 資料庫密碼加/解密 91
2.5 配置多個連線資料庫環境 93
2.5.1 實現多個連線資料庫環境 93
2.5.2 多個連線資料庫環境與資料庫加/解密 94
2.6 使用數據源 95
2.6.1 DataSource接口介紹 95
2.6.2 JNDI介紹 96
2.6.3 DataSource與JNDI的關係 97
2.6.4 使用JNDI接口操作JNDI Tree上的數據 98
2.6.5 在JNDI樹中先獲得DataSource再獲得Connection 100
2.6.6 在MyBatis中從JNDI獲得DataSource 102
2.6.7 在MyBatis中使用第三方的HikariCP連線池 102
2.7 不同資料庫執行不同SQL語句的支持 104
2.7.1 使用實現執行不同的SQL語句 105
2.7.2 在SQL映射的id值相同的情況下有無databaseId的優先權判斷 106
2.8 獲取Mapper的多種方式 107
2.9 中type為JDBC和MANAGED時的區別 108
2.10 動態SQL 110
2.10.1 標籤的基本使用 110
2.10.2 標籤與有參構造方法 112
2.10.3 使用 ${} 拼接SQL語句 113
2.10.4 標籤 114
2.10.5 插入null值的第 1種方法——JdbcType 118
2.10.6 插入null值的第 2種方法—— 119
2.10.7 標籤 120
2.10.8 標籤的使用 121
2.10.9 標籤的使用 122
2.10.10 標籤的使用 123
2.10.11 使用執行批量插入 125
2.10.12 使用標籤對like語句進行適配 127
2.10.13 使用標籤規範SQL語句 129
2.11 讀寫CLOB類型的數據 131
2.12 處理分頁 133
2.12.1 使用SqlSession對象對查詢的數據進行分頁 134
2.12.2 使用Mapper接口對查詢的數據進行分頁 134
2.13 實現批處理 135
2.14 實現一對一級聯 136
2.14.1 數據表結構和內容以及關係 136
2.14.2 創建實體類 137
2.14.3 創建SQL映射檔案 137
2.14.4 級聯解析 138
2.14.5 根據ID查詢記錄 138
2.14.6 查詢所有記錄 139
2.14.7 對SQL語句執行次數進行最佳化 140
2.15 實現一對多級聯 141
2.15.1 數據表的結構、內容以及關係 141
2.15.2 創建實體類 142
2.15.3 創建SQL映射檔案 142
2.15.4 級聯解析 143
2.15.5 根據ID查詢記錄 143
2.15.6 查詢所有記錄 144
2.15.7 對SQL語句的執行次數進行最佳化 145
2.16 延遲載入 146
2.16.1 默認立即載入策略 147
2.16.2 使用全局延遲載入策略與兩種載入方式 148
2.16.3 使用fetchType屬性設定局部載入策略 150
2.17 快取的使用 150
2.17.1 一級快取 151
2.17.2 二級快取 152
2.17.3 驗證update語句具有清除二級快取的特性 154
第3章 Spring 5核心技術之IoC 156
3.2 Spring框架的模組組成 157
3.3 IoC和DI 157
3.4 IoC容器 158
3.5 面向切面編程 158
3.6 初步體會IoC的優勢 159
3.7 在Spring中創建JavaBean 164
3.7.1 使用XML聲明法創建對象 164
3.7.2 使用Annotation註解法創建對象 172
3.7.3 處理JavaBean的生命周期 183
3.8 裝配Spring Bean 189
3.8.1 使用XML聲明法注入對象 189
3.8.2 使用註解聲明法注入對象 191
3.8.3 多實現類的歧義性 192
3.8.4 使用 @Autowired註解向構造方法進行注入 194
3.8.5 使用 @Autowired註解向set方法進行注入 195
3.8.6 使用 @Autowired註解向Field進行注入 195
3.8.7 使用 @Inject向Field-setMethod-Constructor進行注入 196
3.8.8 向 @Bean工廠方法注入參數 196
3.8.9 使用 @Autowired (required = false) 的寫法 197
3.8.10 使用 @Bean為JavaBean的id重命名 198
3.8.11 為構造方法進行注入 199
3.8.12 使用p命名空間對屬性值進行注入 212
3.8.13 Spring上下文環境的相關知識 215
3.8.14 BeanFactory與ApplicationContext 221
3.8.15 注入null類型 222
3.8.16 注入Properties類型 222
3.8.17 在Spring中注入外部屬性檔案的屬性值 223
3.8.18 在IoC容器中創建單例和多例的對象—— XML配置檔案法 225
3.8.19 在IoC容器中創建單例和多例的對象—— 註解法 226
3.8.20 父子容器 226
3.8.21 注入特殊字元 229
3.8.22 使用@Value註解進行注入 229
第4章 Spring 5核心技術之AOP 232
4.1 AOP的使用 232
4.1.1 AOP的原理之代理設計模式 232
4.1.2 與AOP相關的基本概念 240
4.1.3 AOP核心案例 245
4.2 MyBatis 3和Spring 5的整合 280
第5章 Spring 5 MVC實戰技術 284
5.1 MVC、軟體框架與Spring 5 MVC介紹 284
5.2 Spring 5 MVC核心控制器 285
5.3 核心技術 285
5.3.1 執行控制層:無參數傳遞 286
5.3.2 執行控制層:有參數傳遞 287
5.3.3 執行控制層:有參數傳遞簡化版 287
5.3.4 實現登錄功能 288
5.3.5 將URL參數封裝成實體類 290
5.3.6 限制提交method的方式 291
5.3.7 控制層方法的參數類型 291
5.3.8 控制層方法的返回值類型 293
5.3.10 登錄失敗後顯示錯誤信息 294
5.3.11 向控制層注入Service業務邏輯層 295
5.3.12 重定向:無參數傳遞 296
5.3.13 重定向:有參數傳遞 297
5.3.14 重定向傳遞參數:RedirectAttributes.addAttribute() 方法 298
5.3.15 重定向傳遞參數:RedirectAttributes.addFlashAttribute() 方法 299
5.3.16 解決轉發到*.
html檔案的404異常 300
5.3.17 使用fastjson在服務端解析JSON字元串 301
5.3.18 使用jackson在服務端將JSON字元串轉換成各種Java數據類型 302
5.3.19 在控制層返回JSON對象示例 306
5.3.20 在控制層返回JSON字元串示例 307
5.3.21 使用HttpServletResopnse對象輸出回響字元 309
5.3.22 單檔案上傳1:使用MultipartHttpServletRequest 310
5.3.23 單檔案上傳2:使用MultipartFile 311
5.3.24 單檔案上傳3:使用MultipartFile結合實體類 312
5.3.25 多檔案上傳1:使用MultipartHttpServletRequest 312
5.3.26 多檔案上傳2:使用MultipartFile[] 313
5.3.27 多檔案上傳3:使用MultipartFile[]結合實體類 315
5.3.28 支持檔案名稱為中文的檔案的下載 316
5.4 擴展技術 317
5.4.1 使用InternalResourceViewResolver簡化返回的視圖名稱 317
5.4.2 控制層返回List對象及實體的效果 317
5.4.3 實現國際化 321
5.4.4 處理異常 328
5.4.5 配置檔案的不同使用方式 338
5.4.6 方法參數是Model數據類型 339
5.4.7 方法參數是ModelMap數據類型 340
5.4.8 方法返回值是ModelMap數據類型 341
5.4.9 方法返回值是ModelAndView數據類型 342
5.4.10 方法返回值是ModelAndView實現重定向 343
5.4.11 使用 @RequestAttribute和 @SessionAttribute註解 344
5.4.12 使用 @CookieValue和 @RequestHeader註解 344
5.4.13 使用 @SessionAttributes註解 345
5.4.14 使用 @ModelAttribute註解 348
5.4.15 在路徑中添加通配符的功能 354
5.4.16 控制層返回void數據的情況 355
5.4.17 解決多人開發路徑可能重複的問題 356
5.4.18 @PathVariable註解的使用 358
5.4.19 通過URL參數訪問指定的業務方法 359
5.4.20 @RestController註解的使用 360
5.4.21 @GetMapping、@PostMapping、@PutMapping和@DeleteMapping註解的使用 361
5.4.22 Spring 5 MVC與Spring 5的整合及套用AOP切面 365
第6章 MyBatis 3、Spring 5和Spring 5 MVC的整合 368
6.1 準備MyBatis 3、Spring 5和Spring 5
MVC框架的JAR包檔案 368
6.2 準備MyBatis 3與Spring 5整合的外掛程式 368
6.3 創建Web項目 368
6.5 配置springMVC-servlet.xml檔案 369
6.6 MyBatis配置檔案 369
6.7 創建MyBatis映射的相關檔案 369
6.8 配置applicationContext.xml檔案 370
6.9 創建Service對象 372
6.10 創建Controller對象 372
6.11 測試正常的效果 373
6.12 測試回滾的效果 373
第7章 前沿技術Spring Boot 374
7.1 搭建Maven開發環境 374
7.1.1 Maven介紹 374
7.1.2 搭建Maven環境 375
7.1.3 在Eclipse中關聯Maven 377
7.1.4 創建Maven項目 379
7.1.5 使用Maven工具下載Spring框架(JAR包、原始碼和幫助文檔)381
7.1.6 向倉庫中添加自定義的JAR包 384
7.1.7 查看依賴關係 384
7.2 使用Thymeleaf模板引擎 385
7.2.1 常見的使用方式 385
7.2.2 實現循環 392
7.2.3 實現國際化與轉義 396
7.2.4 處理連結 398
7.2.5 實現if處理 399
7.2.6 實現比較 400
7.2.7 處理屬性值 401
7.3 使用Spring Boot開發Web項目 402
7.3.1 創建Maven Web Project 402
7.3.2 更改錯誤的Maven Web Project環境 404
7.3.3 常用Starter的介紹 407
7.3.4 創建控制層 409
7.3.5 添加JSTL依賴 410
7.3.6 創建JSP視圖檔案 410
7.3.7 創建啟動類Application 411
7.3.8 運行Application類 411
7.3.9 執行test2的URL 412
7.3.10 執行test1的URL 412
7.3.11 添加JSP依賴 412
7.3.12 實現項目首頁 413
7.3.13 在CMD中啟動項目 413
7.3.14 創建可執行JAR 414
7.3.15 實現注入IoC 415
7.3.16 實現切面AOP 416
7.3.17 官方建議的項目結構 417
7.3.18 實現Spring Boot整合Thymeleaf模板 417
7.3.19 使用自定義的Thymeleaf模板顯示異常信息 419
7.3.20 實現Spring Boot整合MyBatis框架 423
1.10.5 SQL映射檔案中命名空間的作用 52
1.11 自建環境使用Mapper接口操作Oracle和MySQL資料庫 53
1.11.1 接口-SQL映射的對應關係 54
1.11.2 針對Oracle的CURD 55
1.11.3 針對MySQL的CURD 59
1.11.4 向Mapper接口傳入參數類型 62
1.11.5 從SQL映射取得返回值類型 70
1.12 MyBatis核心對象的生命周期與封裝 74
1.12.1 創建GetSqlSessionFactory類 75
1.12.2 創建GetSqlSession類 76
1.12.3 創建SQL映射接口 76
1.12.4 創建SQL映射檔案 76
1.12.6 添加記錄及異常回滾的測試 78
第 2章 MyBatis 3核心技術之實戰技能 80
2.1 結合Log4j實現輸出日誌 80
2.1.1 結合Log4j 1實現輸出日誌 80
2.1.2 結合Log4j 2實現輸出日誌 82
2.2 SQL語句中特殊符號的處理 83
2.3 使用typeAliases配置別名 84
2.3.1 系統預定義別名 84
2.3.2 使用單獨配置自定義別名 86
2.3.3 使用批量配置自定義別名 87
2.3.4 別名重複的解決辦法 88
2.4 使用properties保存資料庫信息 89
2.4.1 使用配置內部屬性值 89
2.4.2 使用引用外部properties屬性檔案中的配置 90
2.4.3 使用程式代碼讀取properties檔案中的參數 90
2.4.4 資料庫密碼加/解密 91
2.5 配置多個連線資料庫環境 93
2.5.1 實現多個連線資料庫環境 93
2.5.2 多個連線資料庫環境與資料庫加/解密 94
2.6 使用數據源 95
2.6.1 DataSource接口介紹 95
2.6.2 JNDI介紹 96
2.6.3 DataSource與JNDI的關係 97
2.6.4 使用JNDI接口操作JNDI Tree上的數據 98
2.6.5 在JNDI樹中先獲得DataSource再獲得Connection 100
2.6.6 在MyBatis中從JNDI獲得DataSource 102
2.6.7 在MyBatis中使用第三方的HikariCP連線池 102
2.7 不同資料庫執行不同SQL語句的支持 104
2.7.1 使用實現執行不同的SQL語句 105
2.7.2 在SQL映射的id值相同的情況下有無databaseId的優先權判斷 106
2.8 獲取Mapper的多種方式 107
2.9 中type為JDBC和MANAGED時的區別 108
2.10 動態SQL 110
2.10.1 標籤的基本使用 110
2.10.2 標籤與有參構造方法 112
2.10.3 使用 ${} 拼接SQL語句 113
2.10.4 標籤 114
2.10.5 插入null值的第 1種方法——JdbcType 118
2.10.6 插入null值的第 2種方法—— 119
2.10.7 標籤 120
2.10.8 標籤的使用 121
2.10.9 標籤的使用 122
2.10.10 標籤的使用 123
2.10.11 使用執行批量插入 125
2.10.12 使用標籤對like語句進行適配 127
2.10.13 使用標籤規範SQL語句 129
2.11 讀寫CLOB類型的數據 131
2.12 處理分頁 133
2.12.1 使用SqlSession對象對查詢的數據進行分頁 134
2.12.2 使用Mapper接口對查詢的數據進行分頁 134
2.13 實現批處理 135
2.14 實現一對一級聯 136
2.14.1 數據表結構和內容以及關係 136
2.14.2 創建實體類 137
2.14.3 創建SQL映射檔案 137
2.14.4 級聯解析 138
2.14.5 根據ID查詢記錄 138
2.14.6 查詢所有記錄 139
2.14.7 對SQL語句執行次數進行最佳化 140
2.15 實現一對多級聯 141
2.15.1 數據表的結構、內容以及關係 141
2.15.2 創建實體類 142
2.15.3 創建SQL映射檔案 142
2.15.4 級聯解析 143
2.15.5 根據ID查詢記錄 143
2.15.6 查詢所有記錄 144
2.15.7 對SQL語句的執行次數進行最佳化 145
2.16 延遲載入 146
2.16.1 默認立即載入策略 147
2.16.2 使用全局延遲載入策略與兩種載入方式 148
2.16.3 使用fetchType屬性設定局部載入策略 150
2.17 快取的使用 150
2.17.1 一級快取 151
2.17.2 二級快取 152
2.17.3 驗證update語句具有清除二級快取的特性 154
第3章 Spring 5核心技術之IoC 156
3.2 Spring框架的模組組成 157
3.3 IoC和DI 157
3.4 IoC容器 158
3.5 面向切面編程 158
3.6 初步體會IoC的優勢 159
3.7 在Spring中創建JavaBean 164
3.7.1 使用XML聲明法創建對象 164
3.7.2 使用Annotation註解法創建對象 172
3.7.3 處理JavaBean的生命周期 183
3.8 裝配Spring Bean 189
3.8.1 使用XML聲明法注入對象 189
3.8.2 使用註解聲明法注入對象 191
3.8.3 多實現類的歧義性 192
3.8.4 使用 @Autowired註解向構造方法進行注入 194
3.8.5 使用 @Autowired註解向set方法進行注入 195
3.8.6 使用 @Autowired註解向Field進行注入 195
3.8.7 使用 @Inject向Field-setMethod-Constructor進行注入 196
3.8.8 向 @Bean工廠方法注入參數 196
3.8.9 使用 @Autowired (required = false) 的寫法 197
3.8.10 使用 @Bean為JavaBean的id重命名 198
3.8.11 為構造方法進行注入 199
3.8.12 使用p命名空間對屬性值進行注入 212
3.8.13 Spring上下文環境的相關知識 215
3.8.14 BeanFactory與ApplicationContext 221
3.8.15 注入null類型 222
3.8.16 注入Properties類型 222
3.8.17 在Spring中注入外部屬性檔案的屬性值 223
3.8.18 在IoC容器中創建單例和多例的對象—— XML配置檔案法 225
3.8.19 在IoC容器中創建單例和多例的對象—— 註解法 226
3.8.20 父子容器 226
3.8.21 注入特殊字元 229
3.8.22 使用@Value註解進行注入 229
第4章 Spring 5核心技術之AOP 232
4.1 AOP的使用 232
4.1.1 AOP的原理之代理設計模式 232
4.1.2 與AOP相關的基本概念 240
4.1.3 AOP核心案例 245
4.2 MyBatis 3和Spring 5的整合 280
第5章 Spring 5 MVC實戰技術 284
5.1 MVC、軟體框架與Spring 5 MVC介紹 284
5.2 Spring 5 MVC核心控制器 285
5.3 核心技術 285
5.3.1 執行控制層:無參數傳遞 286
5.3.2 執行控制層:有參數傳遞 287
5.3.3 執行控制層:有參數傳遞簡化版 287
5.3.4 實現登錄功能 288
5.3.5 將URL參數封裝成實體類 290
5.3.6 限制提交method的方式 291
5.3.7 控制層方法的參數類型 291
5.3.8 控制層方法的返回值類型 293
5.3.10 登錄失敗後顯示錯誤信息 294
5.3.11 向控制層注入Service業務邏輯層 295
5.3.12 重定向:無參數傳遞 296
5.3.13 重定向:有參數傳遞 297
5.3.14 重定向傳遞參數:RedirectAttributes.addAttribute() 方法 298
5.3.15 重定向傳遞參數:RedirectAttributes.addFlashAttribute() 方法 299
5.3.16 解決轉發到*.
html檔案的404異常 300
5.3.17 使用fastjson在服務端解析JSON字元串 301
5.3.18 使用jackson在服務端將JSON字元串轉換成各種Java數據類型 302
5.3.19 在控制層返回JSON對象示例 306
5.3.20 在控制層返回JSON字元串示例 307
5.3.21 使用HttpServletResopnse對象輸出回響字元 309
5.3.22 單檔案上傳1:使用MultipartHttpServletRequest 310
5.3.23 單檔案上傳2:使用MultipartFile 311
5.3.24 單檔案上傳3:使用MultipartFile結合實體類 312
5.3.25 多檔案上傳1:使用MultipartHttpServletRequest 312
5.3.26 多檔案上傳2:使用MultipartFile[] 313
5.3.27 多檔案上傳3:使用MultipartFile[]結合實體類 315
5.3.28 支持檔案名稱為中文的檔案的下載 316
5.4 擴展技術 317
5.4.1 使用InternalResourceViewResolver簡化返回的視圖名稱 317
5.4.2 控制層返回List對象及實體的效果 317
5.4.3 實現國際化 321
5.4.4 處理異常 328
5.4.5 配置檔案的不同使用方式 338
5.4.6 方法參數是Model數據類型 339
5.4.7 方法參數是ModelMap數據類型 340
5.4.8 方法返回值是ModelMap數據類型 341
5.4.9 方法返回值是ModelAndView數據類型 342
5.4.10 方法返回值是ModelAndView實現重定向 343
5.4.11 使用 @RequestAttribute和 @SessionAttribute註解 344
5.4.12 使用 @CookieValue和 @RequestHeader註解 344
5.4.13 使用 @SessionAttributes註解 345
5.4.14 使用 @ModelAttribute註解 348
5.4.15 在路徑中添加通配符的功能 354
5.4.16 控制層返回void數據的情況 355
5.4.17 解決多人開發路徑可能重複的問題 356
5.4.18 @PathVariable註解的使用 358
5.4.19 通過URL參數訪問指定的業務方法 359
5.4.20 @RestController註解的使用 360
5.4.21 @GetMapping、@PostMapping、@PutMapping和@DeleteMapping註解的使用 361
5.4.22 Spring 5 MVC與Spring 5的整合及套用AOP切面 365
第6章 MyBatis 3、Spring 5和Spring 5 MVC的整合 368
6.1 準備MyBatis 3、Spring 5和Spring 5
MVC框架的JAR包檔案 368
6.2 準備MyBatis 3與Spring 5整合的外掛程式 368
6.3 創建Web項目 368
6.5 配置springMVC-servlet.xml檔案 369
6.6 MyBatis配置檔案 369
6.7 創建MyBatis映射的相關檔案 369
6.8 配置applicationContext.xml檔案 370
6.9 創建Service對象 372
6.10 創建Controller對象 372
6.11 測試正常的效果 373
6.12 測試回滾的效果 373
第7章 前沿技術Spring Boot 374
7.1 搭建Maven開發環境 374
7.1.1 Maven介紹 374
7.1.2 搭建Maven環境 375
7.1.3 在Eclipse中關聯Maven 377
7.1.4 創建Maven項目 379
7.1.5 使用Maven工具下載Spring框架(JAR包、原始碼和幫助文檔)381
7.1.6 向倉庫中添加自定義的JAR包 384
7.1.7 查看依賴關係 384
7.2 使用Thymeleaf模板引擎 385
7.2.1 常見的使用方式 385
7.2.2 實現循環 392
7.2.3 實現國際化與轉義 396
7.2.4 處理連結 398
7.2.5 實現if處理 399
7.2.6 實現比較 400
7.2.7 處理屬性值 401
7.3 使用Spring Boot開發Web項目 402
7.3.1 創建Maven Web Project 402
7.3.2 更改錯誤的Maven Web Project環境 404