出版信息
Spring Framework 6開發實戰(Spring+Spring Web MVC+MyBatis)
作者:肖海鵬、耿衛江、王榮芝、張天怡、張志慧
叢書名:計算機科學與技術叢書
定價:79元
印次:1-2
ISBN:9787302642176
出版日期:2023.10.01
印刷日期:2024.11.01
作者簡介
肖海鵬是資深代碼研發人員,人社部高級職稱,51CTO金牌講師,E龍網架構師,高級項目經理。
作者有多年的大型項目開發經驗和豐富的教學經驗,在JavaEE領域有深入的研究。
內容簡介
《Spring Framework 6開發實戰(Spring+Spring Web MVC+MyBatis)》基於框架Spring 6.x,按照“理論講解+貫穿案例”的模式詳細講解了SSM框架的套用技術。本書共10章,第1章對Spring框架進行簡單介紹;第2~4章結合員工系統分別講解Spring框架的核心功能IoC、AOP、聲明性事務等內容;第5章引入噹噹書城企業項目案例,結合具體項目講解Spring整合JDBC;第6章講解Spring MVC框架;第7章講解使用Spring MVC實現噹噹書城項目;第8章講解MyBatis框架的使用技術;第9、10章結合噹噹書城項目,講解SSM框架統一整合。
圖書目錄
目錄
第1章 Spring入門 1
1.1 Rod Johson與Spring 1
1.2 Spring與Jakarta EE的關係 2
1.2.1 Java EE與Jakarta EE 2
1.2.2 Jakarta EE是什麼 3
1.2.3 Jakarta EE 9架構 3
1.2.4 Spring與Jakarta EE 4
1.3 Spring Project介紹 5
1.3.1 Spring官網 5
1.3.2 Spring熱門Project 6
1.4 Spring Framework歷史版本比較 6
1.4.1 Spring Framework資料下載 6
1.4.2 Spring 6.x對比Spring 5.x的變化 6
1.4.3 Spring 6.x的趨勢 7
1.5 Spring Framework功能總覽 7
1.5.1 核心功能 7
1.5.2 數據層整合 7
1.5.3 Web層技術 7
1.5.4 外部系統集成 8
1.6 Spring Framework模組組成 8
1.6.1 模組架構圖 8
1.6.2 各模組的職責 8
第2章 Spring IoC 10
2.1 IoC與DI的概念 10
2.2 IoC容器與ApplicationContext 10
2.3 IoC容器的創建與使用 11
2.3.1 創建IoC容器實例 11
2.3.2 從IoC容器讀取Bean 13
2.3.3 案例:hello入門 13
2.4 Bean管理 14
2.4.1 BeanDefinition 15
2.4.2 屬性id和name的區別 16
2.4.3 創建Bean對象 16
2.5 案例:HelloSpringIoC 20
2.5.1 面向接口編程 21
2.5.2 XML+反射實現IoC 22
2.5.3 Spring實現IoC 23
2.6 依賴注入 24
2.6.1 依賴注入介紹 24
2.6.2 項目案例:StaffUser系統與DI 24
2.6.3 構造器注入 28
2.6.4 Set方法注入 31
2.6.5 XML依賴配置詳解 33
2.6.6 Autowire注入 40
2.6.7 方法注入 44
2.6.8 依賴注入總結 47
2.7 Bean對象的範圍 48
2.7.1 配置Bean的範圍 49
2.7.2 singleton和prototype 49
2.7.3 案例:HelloSpringAction 50
2.7.4 Bean的Web套用 52
2.7.5 Bean的依賴 53
2.7.6 Java Bean的屬性範圍 54
2.8 定製Bean的特性信息 54
2.8.1 Bean的生命周期回調處理 55
2.8.2 Aware接口 59
2.9 IoC容器擴展 60
2.9.1 BeanPostProcessor接口 60
2.9.2 FactoryBean接口 62
2.10 註解配置 64
2.10.1 JSR相關註解 64
2.10.2 Spring相關註解 71
2.11 標準事件與自定義事件 73
2.11.1 標準事件 73
2.11.2 案例:郵件黑名單 73
2.11.3 案例:接收多類型訊息 75
2.12 Bean工廠 76
2.12.1 BeanFactory接口 76
2.12.2 HierarchicalBeanFactory接口 76
2.12.3 ListableBeanFactory接口 77
2.12.4 實現類DefaultListableBeanFactory 77
2.12.5 Bean與BeanFactory 78
2.12.6 IoC容器與BeanFactory 78
第3章 面向切面編程 80
3.1 AOP介紹 80
3.1.1 AOP中的專業術語 80
3.1.2 advice的通知類型 81
3.1.3 AOP動態代理選擇 81
3.2 @AspectJ支持 82
3.2.1 @AspectJ介紹 82
3.2.2 autoproxying配置 82
3.2.3 聲明Aspect 83
3.2.4 聲明 Pointcut 83
3.2.5 Pointcut表達式 83
3.2.6 聲明advice 85
3.2.7 案例:StaffUser日誌管理 88
3.2.8 案例:StaffUser資料庫連線管理 89
3.3 基於XML的AOP配置 89
3.3.1 聲明Aspect 90
3.3.2 聲明Pointcut 90
3.3.3 聲明Advice 91
3.3.4 使用Advisor 92
3.3.5 案例:StaffUser日誌管理 92
3.3.6 案例:StaffUser資料庫連線管理 94
3.4 動態代理機制 94
3.4.1 靜態代理 95
3.4.2 JDK動態代理 97
3.4.3 項目案例:自動管理資料庫連線 99
3.4.4 項目案例:員工系統的事務管理 102
3.4.5 項目案例:員工系統事務AspectJ方案 107
第4章 Spring整合JDBC 111
4.1 事務分類 111
4.2 Spring事務模型 113
4.3 Spring事務抽象模型 114
4.4 事務與資源管理 116
4.5 Spring聲明性事務 117
4.5.1 XML方式管理聲明性事務 117
4.5.2 項目案例:StaffUser事務的XML方案 118
4.5.3 JdbcDaoSupport 121
4.5.4 註解管理聲明性事務 122
4.5.5 項目案例:StaffUser事務註解方案 123
4.6 Spring編程式事務 124
4.6.1 編程式事務介紹 124
4.6.2 案例:Spring編程式事務新增員工 125
4.7 聲明性事務與編程式事務選擇 126
4.8 Spring事務傳播 126
4.8.1 Propagation.REQUIRED設定 127
4.8.2 Propagation.REQUIRES_NEW設定 131
4.8.3 Propagation.NESTED設定 132
第5章 噹噹書城Spring整合JDBC 133
5.1 噹噹書城基本功能 133
5.1.1 項目開發環境 133
5.1.2 表結構設計 133
5.1.3 噹噹書城原型 134
5.2 Spring整合JDBC實戰 137
5.2.1 導包 137
5.2.2 Spring配置檔案 138
5.2.3 封裝BaseDao 139
5.2.4 封裝SpringFactory 140
5.2.5 定義Spring Bean和依賴關係 140
5.2.6 配置聲明性事務 140
5.2.7 控制器調用Bean 141
5.2.8 項目部署 141
第6章 Spring Web MVC 142
6.1 Spring Web MVC介紹 142
6.1.1 視圖與控制層技術介紹 142
6.1.2 Spring MVC概述 142
6.1.3 Spring MVC特性支持 143
6.2 案例:HelloMVC 144
6.2.1 環境配置 144
6.2.2 Model與控制器 144
6.2.3 MVC架構 145
6.3 案例:HelloSpringmvc入門示例 146
6.3.1 導包 146
6.3.2 配置前端控制器DispatcherServlet 146
6.3.3 核心配置檔案 146
6.3.4 編寫HelloAction 147
6.3.5 編寫視圖 147
6.3.6 瀏覽器測試 147
6.3.7 配置log4j 147
6.4 前端控制器DispatcherServlet 148
6.4.1 Spring MVC架構圖 148
6.4.2 DispatcherServlet與IoC容器的關係 149
6.4.3 DispatcherServlet核心功能 150
6.5 DispatcherServlet的工作流程 151
6.5.1 查看原始碼 151
6.5.2 斷點觀察DispatcherServlet運行流程 151
6.5.3 前端控制器的doDispatch方法 153
6.5.4 創建IoC容器 154
6.6 @Controller 156
6.6.1 @Controller的作用域 156
6.6.2 @RequestMapping 157
6.6.3 控制器異步處理 180
6.7 攔截器 182
6.7.1 HandlerMapping 182
6.7.2 案例:非工作時間拒絕服務 183
6.7.3 攔截器運行流程分析 184
6.8 視圖解析 185
6.8.1 視圖解析的主要接口 185
6.8.2 JSP視圖 186
6.8.3 ViewResolver解析視圖 187
6.8.4 視圖解析器鏈 187
6.8.5 重定向到視圖 188
6.9 使用Flash屬性 191
6.10 使用Locale 191
6.10.1 Locale解析器 192
6.10.2 Locale攔截器 193
6.10.3 案例:國際化套用 193
6.11 主題Theme 196
6.12 multipart檔案上傳 198
6.12.1 Spring multipart介紹 199
6.12.2 案例:圖片上傳 199
6.13 異常處理 200
6.13.1 HandlerExceptionResolver 200
6.13.2 SimpleMappingExceptionResolver 200
6.13.3 @ExceptionHandler 201
6.13.4 標準異常解析 202
6.14 JSP & JSTL 204
6.14.1 JSP與JSTL介紹 204
6.14.2 Spring MVC基礎標籤 204
6.14.3 form標籤庫 205
第7章 噹噹書城Spring MVC實戰 207
7.1 導包 207
7.2 配置web.xml 207
7.3 配置spring-mvc.xml 208
7.4 用戶許可權校驗 209
7.5 書城主頁實現 210
7.6 圖書詳情頁實現 210
7.7 用戶管理 211
7.7.1 用戶登錄 211
7.7.2 用戶退出 212
7.8 購物車實現 212
7.8.1 購物車設計 212
7.8.2 我的購物車 212
7.8.3 加入購物車 213
7.8.4 移出購物車 213
7.9 用戶付款 213
7.9.1 結算 213
7.9.2 付款 215
7.10 圖書上架 215
7.11 系統異常設計 217
第8章 MyBatis持久層框架 219
8.1 案例:MyBatis快速入門 219
8.1.1 導包 219
8.1.2 創建SqlSessionFactory單例 219
8.1.3 從SqlSessionFactory獲得SqlSession 220
8.1.4 映射接口和映射檔案 221
8.1.5 配置映射指向 221
8.1.6 Mapper調用 221
8.1.7 代碼測試 221
8.1.8 Log4j跟蹤MyBatis 222
8.2 MyBatis原理分析 222
8.2.1 SqlSession與Connection 222
8.2.2 SqlSession的getMapper 223
8.3 MyBatis配置 225
8.3.1 properties屬性配置 226
8.3.2 settings配置 227
8.3.3 typeAliases配置 229
8.3.4 typeHandlers 230
8.3.5 objectFactory配置 233
8.3.6 plugins攔截器 235
8.3.7 環境配置 236
8.3.8 databaseIdProvider 241
8.3.9 Mappers配置 242
8.4 Mapper映射XML檔案 243
8.4.1 mapper元素 243
8.4.2 select元素 244
8.4.3 insert、update和delete元素 245
8.4.4 項目案例:新增員工 247
8.4.5 項目案例:員工打卡 250
8.4.6 參數處理 253
8.4.7 ResultMap 255
8.4.8 項目案例:員工打卡記錄查詢 259
8.4.9 快取 262
8.5 動態SQL 265
8.5.1 判斷:if 265
8.5.2 分支:choose, when 267
8.5.3 循環:foreach 268
第9章 Spring整合MyBatis 270
9.1 整合資料下載 270
9.2 導包 270
9.3 Spring配置檔案 271
9.4 配置Bean和依賴注入 272
9.5 聲明性事務 272
9.5.1 唯讀事務 273
9.5.2 寫操作事務管理 273
第10章 噹噹書城SSM整合 275
10.1 搭建SSM整合環境 275
10.1.1 導包 275
10.1.2 配置myBatis.xml 275
10.1.3 配置beans.xml 276
10.1.4 Mapper接口與映射檔案 276
10.1.5 持久層依賴注入Mapper 277
10.2 MyBatis映射實現 277
10.2.1 主頁推薦圖書 277
10.2.2 圖書詳情 278
10.2.3 用戶管理 278
10.2.4 購物車 278
10.2.5 用戶付款 279
10.2.6 圖書上架 281