Spring Boot + MVC 實戰指南
高洪巖
買這商品的人也買了...
-
無瑕的程式碼-整潔的軟體設計與架構篇 (Clean Architecture: A Craftsman's Guide to Software Structure and Design)$580$452 -
$327Spring Boot + Vue 全棧開發實戰 -
$454持續集成與持續部署實踐 -
$594Spring 實戰, 5/e (Spring in Action, 5/e) -
$607Oracle 高性能係統架構實戰大全 -
Spring Boot 情境式網站開發指南|使用 Spring Data JPA、Spring Security、Spring Web Flow$580$493 -
$403Oracle 12c SQL 和 PL/SQL 編程指南 -
$607Quarkus 雲原生微服務開發實戰 -
$270Oracle 從入門到精通, 4/e -
$347數據挖掘算法 — 基於 C++ 及 CUDA C -
$454GraalVM 與 Java 靜態編譯:原理與應用 -
Spring Security 實戰 (Spring Security in Action)$834$792 -
$383Spring Boot 從零開始學(視頻教學版) -
$356Vue.js Web 開發案例教程 -
$407JavaScript + Vue.js Web 開發案例教程 -
$505Spring Boot 進階:原理、實戰與面試題分析 -
Spring 實戰, 6/e$659$626 -
React 全棧式實戰開發入門 (微課視頻版)$479$455 -
C/C++ 代碼調試的藝術, 2/e$659$626 -
深入淺出 Java 虛擬機 JVM 原理與實戰$414$393 -
$356Vue.js+Spring Boot全棧開發實戰 -
$556Spring Boot 3 + Vue 3 開發實戰 -
可觀測性工程|達成卓越營運 (Observability Engineering: Achieving Production Excellence)$680$537 -
Python 原力爆擊:OpenAI / Gemini / AWS / Ollama 生成式 AI 應用新手指南$650$507 -
AI Agent 奇幻旅程:MCP 通往異世界金鑰(含最新 OpenAI GPT-5 範例)$680$530
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$576 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
78折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$390 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
《Spring Boot+MVC實戰指南》主要講解如何在Spring Boot框架中開發MVC應用,包括主流的JavaEE框架,如MyBatis、Spring、SpringMVC、FreeMarker和Thymeleaf等。讀者可以進行“精要”式學習,正確地進行項目實戰,同時汲取JavaEE的思想,並最終將這種思想靈活運用到實際工作中。
《Spring Boot+MVC實戰指南》主要涉及MVC框架的原理實現、上傳、下載、數據驗證、國際化、多模塊分組開發、轉發/重定向、JSON的解析、將Ajax及JSON和MVC框架進行整合開發,以及MyBatis中映射文件的使用。本書還介紹了Spring中的核心技術(依賴註入與AOP),掌握這兩項技術是學習Spring的重中之重。
《Spring Boot+MVC實戰指南》語言簡潔,示例豐富,以掌握實用技術為目的,幫助讀者迅速掌握使用主流開源JavaEE框架進行開發所需的各種技能。本書適合已具有一定Java編程基礎(具有Servlet編程經驗)的讀者閱讀,也可供Java平臺下進行各類軟件開發的開發人員、測試人員參考。
作者簡介
高洪巖,世界500強企業高級項目經理,具有10餘年項目管理與開發經驗,在多線程和並發、Android移動開發、智能報表和分佈式處理等企業級架構技術領域深耕多年,深諳Java技術開發要點與難點,擁有良好的技術素養和豐富的實踐經驗,一直在持續關註架構的優化和重構領域,喜歡用技術與理論相結合的方式分享知識,以共同提高。著有《Java多線程編程核心技術》《Java並發編程:核心方法與框架》《Java EE核心框架實戰》《NIO與Socket編程技術指南》《虛擬化高性能NoSQL存儲案例精粹:Redis+Docker》《Java Web實操》等書籍。
目錄大綱
第 1章 Spring 5核心技術之IoC 1
1.1 什麼是框架 1
1.2 反射與XML操作 1
1.2.1 基礎知識準備——反射 1
1.2.2 基礎知識準備——操作XML文件 13
1.3 Spring框架介紹 20
1.4 Spring框架的模塊組成 20
1.5 控制反轉和依賴註入介紹 21
1.6 IoC容器介紹 22
1.7 AOP介紹 22
1.8 初步體會IoC的優勢 23
1.8.1 傳統方式 23
1.8.2 Spring方式 24
1.8.3 依賴註入的原理是反射 28
1.9 在Spring中創建JavaBean 28
1.9.1 使用
1.9.2 使用
1.9.3 使用“全註解”法創建對象 30
1.9.4 使用“全註解”法獲取對象時出現NoUniqueBeanDefinitionException異常的解決辦法 32
1.9.5 使用@ComponentScan(basePackages="")創建並獲取對象 33
1.9.6 使用@ComponentScan(basePackages="")掃描多個包 34
1.9.7 使用@ComponentScan的basePackageClasses屬性進行掃描 36
1.9.8 使用@ComponentScan而不使用basePackages屬性時的效果 37
1.9.9 解決不同包中有相同類名時出現異常的問題 38
1.9.10 推薦使用的代碼結構 40
1.9.11 使用@Lazy註解實現延遲加載 40
1.9.12 出現Overriding bean definition情況時的解決方法 42
1.9.13 在IoC容器中創建單例對象和多例對象 43
1.10 裝配Spring Bean 45
1.10.1 使用註解法註入對象 45
1.10.2 多實現類的歧義性 46
1.10.3 使用@Autowired註解向構造方法的參數進行註入 49
1.10.4 使用@Autowired註解向方法的參數進行註入 50
1.10.5 使用@Autowired註解向字段進行註入 50
1.10.6 使用@Inject註解向字段、方法和構造方法進行註入 51
1.10.7 使用@Bean註解向工廠方法的參數進行註入 53
1.10.8 使用@Autowired(required = false)的寫法 54
1.10.9 使用@Bean對JavaBean的id重命名 56
1.10.10 Spring上下文的相關知識 58
1.10.11 BeanFactory與ApplicationContext 65
1.10.12 使用註解@Value進行註入 65
1.10.13 解決BeanCurrentlyInCreationException異常問題 67
第 2章 Spring 5核心技術之AOP 71
2.1 AOP 71
2.2 AOP原理之代理設計模式 71
2.2.1 靜態代理的實現 72
2.2.2 使用JDK實現動態代理 74
2.2.3 使用Spring實現動態代理 76
2.2.4 使用cglib實現動態代理 79
2.2.5 使用javassist實現動態代理 80
2.3 AOP相關的概念 81
2.3.1 橫切關註點 82
2.3.2 切麵 82
2.3.3 連接點 84
2.3.4 切點 84
2.3.5 通知 85
2.3.6 織入 85
2.4 AOP核心案例 86
2.4.1 實現前置通知、後置通知、返回通知和異常通知 86
2.4.2 向前置通知、後置通知、返回通知和異常通知傳入JoinPoint參數 91
2.4.3 實現環繞通知 92
2.4.4 使用bean表達式 92
2.4.5 使用@Pointcut定義全局切點 94
2.4.6 向切麵傳入參數 96
2.4.7 使用@AfterReturning和@AfterThrowing向切麵傳入參數 98
2.4.8 向環繞通知傳入參數 100
2.4.9 實現多切麵的應用 102
2.4.10 使用@Order註解制定切麵的運行順序 105
第3章 Spring 5 MVC實戰技術 106
3.1 簡介 106
3.2 在Spring Boot框架中搭建Spring MVC開發環境 106
3.2.1 搭建Spring MVC開發環境 107
3.2.2 搭建CSS+JavaScript+HTML+JSP開發環境 114
3.3 核心技術 118
3.3.1 執行控制層——無傳遞參數 118
3.3.2 執行控制層——有傳遞參數 119
3.3.3 執行控制層——有傳遞參數簡化版 120
3.3.4 實現登錄功能 120
3.3.5 將URL參數封裝到實體類 122
3.3.6 限制提交方式 123
3.3.7 控制層方法的參數類型 124
3.3.8 控制層方法的返回值類型 125
3.3.9 取得request-response-session對象 126
3.3.10 實現登錄失敗後的提示信息 126
3.3.11 向Controller控制層註入Service業務邏輯層 128
3.3.12 重定向——無傳遞參數 129
3.3.13 重定向——有傳遞參數 130
3.3.14 重定向傳遞參數——Redirect-Attributes.addAttribute()方法 131
3.3.15 重定向傳遞參數——Redirect-Attributes.addFlashAttribute()方法 132
3.3.16 使用jackson庫在服務端將JSON字符串轉換成各種Java數據類型 133
3.3.17 在控制層返回JSON對象 137
3.3.18 在控制層返回JSON字符串 139
3.3.19 使用HttpServletResponse對象輸出響應字符 140
3.3.20 解決日期問題 142
3.3.21 單文件上傳1——使用MultipartHttpServletRequest 146
3.3.22 單文件上傳2——使用MultipartFile 147
3.3.23 單文件上傳3——使用MultipartFile並結合實體類 148
3.3.24 多文件上傳1——使用MultipartHttpServletRequest 149
3.3.25 多文件上傳2——使用MultipartFile[] 151
3.3.26 多文件上傳3——使用MultipartFile[]並結合實體類 152
3.3.27 使用AJAX實現文件上傳 154
3.3.28 支持中文文件名的文件下載 156
3.3.29 使用@RestController註解 157
3.4 擴展技術 158
3.4.1 使用prefix和suffix簡化返回的視圖名稱 158
3.4.2 控制層返回List對象及實體 159
3.4.3 實現國際化 163
3.4.4 處理異常 172
3.4.5 方法的參數是Model數據類型 177
3.4.6 方法的參數是ModelMap數據類型 178
3.4.7 方法的返回值是ModelMap數據類型 179
3.4.8 方法的返回值是ModelAndView數據類型 180
3.4.9 方法的返回值是ModelAndView數據類型(實現重定向) 182
3.4.10 使用@RequestAttribute和@SessionAttribute註解 182
3.4.11 使用@CookieValue和@RequestHeader註解 183
3.4.12 使用@SessionAttributes註解 184
3.4.13 使用@ModelAttribute註解實現作用域別名 186
3.4.14 在路徑中添加通配符的功能 187
3.4.15 控制層返回void數據的情況 188
3.4.16 解決多人開發路徑可能重復的問題 189
3.4.17 使用@PathVariable註解 191
3.4.18 通過URL參數訪問指定的業務方法 192
3.4.19 使用@GetMapping、@PostMapping、@PutMapping和@Delete Mapping註解 193
3.4.20 使用攔截器 197
3.4.21 Spring 5 MVC應用AOP切麵 203
第4章 MyBatis 3核心技術之必備技能 205
4.1 ORM簡介 205
4.2 MyBatis的優勢 206
4.3 使用JDBC+反射技術實現泛型DAO 207
4.4 三大核心對象的介紹 213
4.5 三大核心對象的生命周期 213
4.6 使用MyBatis Generator插件:單模塊 214
4.6.1 操作Oracle數據庫 215
4.6.2 操作MySQL數據庫 222
4.7 使用MyBatis Generator插件:多模塊 227
4.7.1 操作Oracle數據庫 227
4.7.2 操作MySQL數據庫 232
4.8 自建環境使用Mapper接口操作Oracle-MySQL數據庫 236
4.8.1 接口-SQL映射的對應關系 236
4.8.2 針對Oracle的CURD 237
4.8.3 針對MySQL的CURD 244
4.9 向Mapper接口傳入參數類型 250
4.10 從SQL映射取得返回值類型 253
第5章 MyBatis 3核心技術之實戰技能 255
5.1 實現輸出日誌 255
5.2 SQL語句中特殊符號的處理 255
5.3 使用別名 256
5.3.1 系統預定義別名 256
5.3.2 使用type-aliases-package配置設置別名 257
5.3.3 別名重復的解決辦法 258
5.4 對yml文件中的數據庫密碼進行加密 260
5.5 不同數據庫對執行不同SQL語句的支持 262
5.5.1 使用
5.5.2 如果SQL映射的id值相同,有無databaseId的優先級 263
5.6 動態SQL 264
5.6.1 使用
5.6.2
5.6.3 使用${}拼接SQL語句 266
5.6.4
5.6.5
5.6.6
5.6.7 針對Oracle/MySQL實現like模糊查詢 270
5.6.8
5.6.9
5.6.10
5.6.11 使用
5.6.12 使用
5.6.13 使用
5.7 讀寫大文本類型的數據 281
5.7.1 操作Oracle數據庫 281
5.7.2 操作MySQL數據庫 283
5.8 實現數據分頁 283
5.9 實現一對一級聯 284
5.9.1 數據表結構和內容以及關系 285
5.9.2 創建實體類 285
5.9.3 創建SQL映射文件 287
5.9.4 級聯解析 288
5.9.5 根據ID查詢記錄 288
5.9.6 查詢所有記錄 289
5.9.7 對SQL語句的執行次數進行優化 289
5.10 實現一對多級聯 291
5.10.1 數據表結構和內容以及關系 291
5.10.2 創建實體類 291
5.10.3 創建SQL映射文件 293
5.10.4 級聯解析 294
5.10.5 根據ID查詢記錄 294
5.10.6 查詢所有記錄 294
5.10.7 對SQL語句的執行次數進行優化 295
5.11 延遲加載 297
5.11.1 默認採用立即加載策略 297
5.11.2 使用全局延遲加載策略與兩種加載方式 298
5.11.3 使用fetchType屬性設置局部加載策略 304
5.12 緩存的使用 305
5.12.1 一級緩存 305
5.12.2 二級緩存 307
5.12.3 驗證update語句具有清除二級緩存的特性 308
5.13 Spring事務傳播特性 310
5.13.1 事務傳播特性REQUIRED 310
5.13.2 事務傳播特性SUPPORTS 311
5.13.3 事務傳播特性MANDATORY 311
5.13.4 事務傳播特性REQUIRES_NEW 312
5.13.5 事務傳播特性NOT_SUPPORTED 314
5.13.6 事務傳播特性NEVER 315
5.13.7 事務傳播特性NESTED 317
5.13.8 事務傳播特性總結 318
第6章 模板引擎FreeMarker和Thymeleaf的使用 320
6.1 使用FreeMarker模板引擎 321
6.1.1 FreeMarker的優勢 321
6.1.2 FreeMarker的輸出 321
6.1.3 整合Spring Boot與輸出常見數據類型 322
6.1.4 輸出布爾值 327
6.1.5 輸出Date數據類型 328
6.1.6 循環集合中的數據 329
6.1.7 使用if命令實現判斷 333
6.1.8 判斷List的size值是否為0 334
6.1.9 處理null值 335
6.1.10 實現隔行變色 338
6.1.11 對象嵌套有null值的處理 340
6.1.12 比較運算符 341
6.1.13 遺拾增補 342
6.1.14 填充select中的option 342
6.1.15 實現自動選中select中的option 343
6.1.16 實現頁面靜態化 344
6.1.17 將ftlh文件中的內容輸出到內存中 345
6.2 使用Thymeleaf模板引擎 346
6.2.1 整合Spring Boot與常見的使用方式 346
6.2.2 處理復雜數據類型 351
6.2.3 處理嵌套數據類型 353
6.2.4 訪問Array 354
6.2.5 訪問List 355
6.2.6 訪問Map 356
6.2.7 訪問request-session-application作用域 358
6.2.8 訪問URL參數值 358
6.2.9 循環Array 359
6.2.10 循環List 359
6.2.11 循環Set 360
6.2.12 循環Map 361
6.2.13 生成Table 361
6.2.14 循環生成 362
6.2.15 獲得狀態變量 363
6.2.16 獲得狀態變量的簡化版 364
6.2.17 實現國際化 365
6.2.18 處理URL 366
6.2.19 處理布爾值 367
6.2.20 操作屬性 367


