在互聯(lián)網迅猛發(fā)展的今天,SSM 框架被越來越多地應用于企業(yè)級開發(fā)之中,其發(fā)展勢頭已經超過大部分Java Web 框架,穩(wěn)居榜首。本書以實用性為原則,重點講解SSM 框架在企業(yè)開發(fā)中常用的核心技術。內容逐層深入,而非一次鋪開,先逐一講解MyBatis、Spring 和Spring MVC 三大框架的精髓內容,再利用經典案例說明和實踐,提煉含金量十足的開發(fā)經驗。為保證學習效果,本書使用SSM 框架技術改造經典項目,通過項目的實現(xiàn)加深讀者對SSM 框架技術的理解和掌握程度。
本書提供配套完善的學習資源和支持服務,包括視頻教程、案例素材、學習交流社區(qū)、討論組等,為開發(fā)者帶來全方位的學習體驗。
1、選取知識點核心實用,以互聯(lián)網+實現(xiàn)終身學習
2、以企業(yè)需求為設計導向,以任務驅動為講解方式
3、以案例為主線組織知識點,以實戰(zhàn)項目來提升技術
4、充分考慮學習者的認知曲線,由淺入深,邊講邊練
肖睿任職于北京課工場教育科技有限公司。課工場是專注互聯(lián)網教育的生態(tài)平臺,匯聚了中國和北美數(shù)百位來自知名互聯(lián)網企業(yè)的行業(yè)大咖,向尋求就業(yè)和技術提升的人群提供直播、錄播、面授等多模式教學場景,并通過遍布全國的線下服務中心提供成熟的學習服務,形成完善的“互聯(lián)網+教育”解決方案。同時,課工場也為高校、企業(yè)、行業(yè)提供教育技術賦能,依托Transformer智能教育生態(tài)平臺,打造智慧校園、企業(yè)大學、行業(yè)培訓的教育場景,提供一站式教育解決方案。
序言
前言
關于引用作品的版權聲明
第 1章 MyBatis入門 1
任務1 初識框架技術 2
1.1.1 強大的框架技術 2
1.1.2 什么是框架 3
1.1.3 當前的主流框架 4
任務2 搭建MyBatis環(huán)境 5
1.2.1 什么是數(shù)據(jù)持久化 5
1.2.2 MyBatis框架及ORM 5
1.2.3 搭建MyBatis環(huán)境 6
1.2.4 MyBatis框架的優(yōu)缺點及其適用場合 15
任務3 掌握MyBatis的核心對象 19
1.3.1 SqlSessionFactory的構造者—SqlSessionFactoryBuilder 20
1.3.2 SqlSession的工廠—SqlSessionFactory 21
1.3.3 使用SqlSession進行數(shù)據(jù)持久化操作 22
任務4 掌握MyBatis的核心配置文件 26
1.4.1 配置文件的結構 26
1.4.2 如何引入DTD文件 31
本章總結 33
本章練習 33
第 2章 SQL映射文件 35
任務1 實現(xiàn)條件查詢 36
2.1.1 SQL映射文件 36
2.1.2 單條件查詢 37
2.1.3 多條件查詢 38
2.1.4 自定義查詢結果映射 41
任務2 實現(xiàn)增刪改操作 45
2.2.1 增加操作 45
2.2.2 修改操作 47
2.2.3 多參數(shù)入參 49
2.2.4 刪除操作 51
任務3 實現(xiàn)高級結果映射 52
2.3.1 resultMap的配置 52
2.3.2 使用association處理一對一關聯(lián)關系 53
2.3.3 使用collection處理一對多關聯(lián)關系 56
任務4 配置resultMap自動映射級別和MyBatis緩存 60
2.4.1 resultMap自動映射級別 60
2.4.2 MyBatis緩存 63
本章總結 64
本章練習 64
第3章 動態(tài)SQL 65
任務1 實現(xiàn)多條件查詢 66
3.1.1 if+where用法 66
3.1.2 if+trim用法 74
任務2 實現(xiàn)更新操作 75
3.2.1 if+set用法 75
3.2.2 if+trim用法 78
任務3 使用foreach完成復雜查詢 79
3.3.1 foreach迭代數(shù)組類型的入參 79
3.3.2 foreach迭代List類型的入參 81
3.3.3 foreach迭代Map類型的入參 83
3.3.4 choose(when、otherwise) 86
任務4 實現(xiàn)分頁 89
本章總結 91
本章練習 92
第4章 Spring核心 93
任務1 認識Spring 94
4.1.1 傳統(tǒng)Java EE開發(fā) 94
4.1.2 Spring整體架構 95
任務2 Spring IoC的簡單運用 96
4.2.1 IoC/DI 96
4.2.2 Spring實現(xiàn)輸出 98
4.2.3 深入理解IoC/DI 104
任務3 Spring AOP的簡單運用 112
4.3.1 認識AOP 112
4.3.2 Spring AOP初體驗 114
本章總結 119
本章練習 120
第5章 IoC和AOP擴展 123
任務1 依賴注入擴展 124
5.1.1 實現(xiàn)構造注入 124
5.1.2 p命名空間注入 127
5.1.3 注入不同數(shù)據(jù)類型 128
任務2 掌握其他增強類型 133
5.2.1 實現(xiàn)異常拋出增強 133
5.2.2 實現(xiàn)最終增強 134
5.2.3 實現(xiàn)環(huán)繞增強 135
任務3 使用注解實現(xiàn)IoC 136
5.3.1 注解定義Bean組件 136
5.3.2 注解裝配Bean組件 137
5.3.3 加載注解定義的Bean組件 138
5.3.4 使用@Resource注解實現(xiàn)組件裝配 140
任務4 使用注解實現(xiàn)AOP 142
5.4.1 認識AspectJ 142
5.4.2 使用注解簡化切面的配置 142
5.4.3 @AfterThrowing、@After和@Around注解的使用 145
5.4.4 Spring多種實現(xiàn)方式的取舍 147
任務5 掌握Spring 4.0新特性 147
本章總結 149
本章練習 150
第6章 Spring與MyBatis的整合 151
任務1 分析整合思路 152
任務2 整合前的準備工作 152
任務3 實現(xiàn)Spring對MyBatis的整合 155
6.3.1 配置DataSource 155
6.3.2 配置SqlSessionFactoryBean 157
6.3.3 SqlSessionTemplate進行持久化操作 157
6.3.4 完善代碼并測試 159
任務4 掌握注入映射器的兩種方式 161
6.4.1 MapperFactoryBean的用法 162
6.4.2 MapperScannerConfigurer的用法 163
任務5 添加聲明式事務 166
6.5.1 聲明式事務的XML配置方式 166
6.5.2 聲明式事務的注解添加方式 171
本章總結 173
本章練習 173
第7章 Spring應用擴展 175
任務1 使用多種方式配置數(shù)據(jù)源 176
7.1.1 properties文件方式 176
7.1.2 Spring對JNDI數(shù)據(jù)源的支持 177
任務2 深入理解和配置Bean的作用域 178
7.2.1 Spring中Bean的5個作用域 178
7.2.2 使用注解指定Bean的作用域 179
任務3 基于XML配置Spring的自動裝配 180
任務4 Spring配置文件的拆分策略和拆分方法 182
7.4.1 拆分的策略 182
7.4.2 拆分的方法 183
本章總結 184
本章練習 185
第8章 Spring MVC體系結構和處理請求控制器 187
任務1 使用Spring MVC進行環(huán)境搭建 188
8.1.1 認識Spring MVC 188
8.1.2 搭建環(huán)境 189
8.1.3 請求處理流程及體系結構 196
任務2 理解Spring MVC傳參的方式 201
8.2.1 視圖向控制器傳參 201
8.2.2 控制器向視圖傳參 206
任務3 配置視圖解析器—ViewResolver 214
本章總結 216
本章練習 216
第9章 Spring MVC核心應用-1 217
任務1 搭建Spring MVC+Spring+JDBC框架 218
任務2 實現(xiàn)登錄、注銷功能 220
9.2.1 登錄功能的實現(xiàn) 220
9.2.2 Servlet API作為參數(shù)的使用 224
9.2.3 引入靜態(tài)資源文件 226
9.2.4 局部異常和全局異常 227
任務3 查詢用戶列表 231
本章總結 236
本章練習 236
第 10章 Spring MVC核心應用-2 237
任務1 實現(xiàn)增加用戶功能 238
10.1.1 編碼實現(xiàn)增加用戶功能 238
10.1.2 Spring表單標簽 243
10.1.3 使用JSR 303實現(xiàn)數(shù)據(jù)校驗 246
任務2 實現(xiàn)用戶修改和查看功能 251
10.2.1 編碼實現(xiàn)修改用戶信息 251
10.2.2 REST風格 253
任務3 實現(xiàn)文件上傳 257
10.3.1 單文件上傳 258
10.3.2 多文件上傳 265
本章總結 272
本章練習 272
第 11章 Spring MVC擴展和SSM框架整合 275
任務1 處理JSON對象 276
11.1.1 添加@ResponseBody注解 276
11.1.2 JSON數(shù)據(jù)傳遞的常見問題及解決方法 280
11.1.3 配置多視圖解析器 292
任務2 轉換與格式化數(shù)據(jù) 299
11.2.1 編碼實現(xiàn)自定義轉換器 301
11.2.2 自定義編輯器的使用 303
任務3 SSM框架整合 304
11.3.1 SSM框架架構策略 304
11.3.2 實施框架整合 305
11.3.3 實現(xiàn)登錄和注銷功能 313
本章總結 318
本章練習 318
第 12章 項目實戰(zhàn)—APP信息管理平臺 321
任務1 掌握Git版本控制管理 322
12.1.1 初識Git 322
12.1.2 安裝與配置GitLab 323
12.1.3 GitLab使用圖解 326
12.1.4 安裝Git客戶端 331
12.1.5 使用常用的Git命令 332
任務2 基于Bootstrap進行前端開發(fā) 334
12.2.1 初識Bootstrap 334
12.2.2 引入gentelella-master 336
任務3 需求分析與系統(tǒng)概述 337
12.3.1 需求概述 337
12.3.2 技術框架介紹 338
12.3.3 數(shù)據(jù)庫設計 338
12.3.4 用例圖 339
12.3.5 活動圖 341
12.3.6 軟件環(huán)境 345
12.3.7 項目涉及的技能點列表 345
任務4 項目功能演示 345
12.4.1 項目準備 346
12.4.2 APP開發(fā)者平臺 347
12.4.3 后臺管理系統(tǒng) 357
12.4.4 使用系統(tǒng)攔截器進行session驗證 360
本章總結 361
本章練習 361
附錄 SSM框架常用注解 363