軟件架構(gòu)設(shè)計(jì)實(shí)踐——基于SSM框架
定 價(jià):69 元
- 作者:姚登舉等
- 出版時(shí)間:2024/6/1
- ISBN:9787121479021
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.5
- 頁碼:
- 紙張:
- 版次:
- 開本:
本書介紹了軟件項(xiàng)目開發(fā)中需要遵循的基本設(shè)計(jì)原則及經(jīng)典軟件設(shè)計(jì)模式,重點(diǎn)講解了Spring、Spring MVC、MyBatis(SSM)框架的實(shí)現(xiàn)原理、關(guān)鍵技術(shù)、實(shí)際應(yīng)用,以及其與典型軟件設(shè)計(jì)模式的融合,并通過兩個(gè)項(xiàng)目讓讀者掌握SSM框架的整合應(yīng)用,體會(huì)軟件架構(gòu)設(shè)計(jì)的重要性。 本書理論與實(shí)踐相結(jié)合,在知識(shí)點(diǎn)中融合了思政元素,實(shí)踐案例由易到難、逐步深入,所有代碼均能上機(jī)運(yùn)行。本書提供教學(xué)大綱、電子課件、全部的項(xiàng)目源代碼、實(shí)驗(yàn)設(shè)計(jì)、習(xí)題解答、授課視頻等配套資源,讀者可登錄華信教育資源網(wǎng)(www.hxedu.com.cn)免費(fèi)下載。 本書既可作為本科院校計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程等相關(guān)專業(yè)軟件架構(gòu)設(shè)計(jì)及Java EE方向課程的教材,以及新一代信息技術(shù)現(xiàn)代產(chǎn)業(yè)學(xué)院計(jì)算機(jī)類課程的實(shí)踐教材和培訓(xùn)機(jī)構(gòu)的輔導(dǎo)教材,又可作為Java技術(shù)愛好者的學(xué)習(xí)參考書。
姚登舉,工學(xué)博士,生物學(xué)博士后,教授,博士生導(dǎo)師;擔(dān)任計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院軟件工程系主任,生物信息計(jì)算與數(shù)字健康學(xué)科方向帶頭人,校學(xué)術(shù)委員會(huì)委員,校教學(xué)指導(dǎo)委員會(huì)委員;是中國計(jì)算機(jī)學(xué)會(huì)高級(jí)會(huì)員、中國生物工程學(xué)會(huì)會(huì)員、黑龍江省生物信息學(xué)學(xué)會(huì)會(huì)員、中國計(jì)算機(jī)學(xué)會(huì)生物信息學(xué)專委會(huì)執(zhí)行委員、中國生物工程學(xué)會(huì)計(jì)算與生物信息專業(yè)委員會(huì)委員、黑龍江省計(jì)算機(jī)學(xué)會(huì)計(jì)算機(jī)應(yīng)用專業(yè)委員會(huì)委員、黑龍江省計(jì)算機(jī)學(xué)會(huì)智慧醫(yī)療專業(yè)委員會(huì)委員、黑龍江省生物信息學(xué)學(xué)會(huì)理事、第九屆全國計(jì)算生物學(xué)與生物信息學(xué)學(xué)術(shù)會(huì)議(NCCBB)程序委員、國家自然科學(xué)基金項(xiàng)目評(píng)審專家、Briefings in Bioinformatics、Scientific Reports等期刊審稿專家、iMeta期刊青年編委。主要從事機(jī)器學(xué)習(xí)和生物信息計(jì)算研究,聚焦人類復(fù)雜疾病相關(guān)的分子標(biāo)志物尤其是非編碼RNA預(yù)測(cè)算法等研究方向,主持國家自然科學(xué)基金面上項(xiàng)目、科技部外國專家項(xiàng)目、黑龍江省自然科學(xué)基金面上項(xiàng)目等縱向科研項(xiàng)目7項(xiàng),主持和參與省級(jí)以上教育教學(xué)研究項(xiàng)目6項(xiàng)以第一作者或通訊作者發(fā)表學(xué)術(shù)論文30余篇,其中SCI檢索10余篇。
理論篇
第1章 軟件設(shè)計(jì)模式導(dǎo)論2
1.1 軟件設(shè)計(jì)模式概述2
1.1.1 軟件設(shè)計(jì)模式產(chǎn)生的
背景2
1.1.2 軟件設(shè)計(jì)模式的基本
要素3
1.2 軟件設(shè)計(jì)模式的基本原則4
1.2.1 開閉原則4
1.2.2 里氏代換原則5
1.2.3 依賴倒置原則7
1.2.4 單一職責(zé)原則10
1.2.5 接口隔離原則11
1.2.6 迪米特法則13
1.2.7 合成復(fù)用原則14
1.3 使用軟件設(shè)計(jì)模式的優(yōu)點(diǎn)16
1.3.1 代碼優(yōu)劣的評(píng)價(jià)原則17
1.3.2 使用軟件設(shè)計(jì)模式
帶來的變化17
思考與習(xí)題18
第2章 典型軟件設(shè)計(jì)模式19
2.1 單例模式19
2.1.1 單例模式的特點(diǎn)19
2.1.2 單例模式的優(yōu)缺點(diǎn)19
2.1.3 單例模式的應(yīng)用場(chǎng)景20
2.1.4 單例模式的實(shí)現(xiàn)20
2.2 原型模式22
2.3 工廠模式23
2.3.1 簡單工廠模式24
2.3.2 工廠方法模式25
2.3.3 抽象工廠模式26
2.4 建造者模式29
2.5 代理模式33
2.5.1 代理模式的應(yīng)用場(chǎng)景34
2.5.2 代理模式的主要優(yōu)點(diǎn)34
2.5.3 代理模式的簡單示例34
2.6 MVC設(shè)計(jì)模式35
2.6.1 MVC設(shè)計(jì)模式的由來36
2.6.2 MVC設(shè)計(jì)模式在Java Web開發(fā)中的應(yīng)用36
2.6.3 MVC設(shè)計(jì)模式的
工作原理37
2.6.4 MVC設(shè)計(jì)模式的
優(yōu)點(diǎn)37
思考與習(xí)題39
第3章 認(rèn)識(shí)軟件架構(gòu)40
3.1 軟件架構(gòu)概述40
3.1.1 軟件架構(gòu)產(chǎn)生的背景40
3.1.2 軟件架構(gòu)的定義41
3.1.3 軟件架構(gòu)的應(yīng)用42
3.1.4 軟件架構(gòu)的一般特性43
3.2 感受身邊的架構(gòu)存在44
3.2.1 交通信號(hào)燈控制
系統(tǒng)的架構(gòu)44
3.2.2 智能手機(jī)充電接口的
架構(gòu)45
3.3 軟件架構(gòu)的表示46
3.3.1 軟件架構(gòu)的描述46
3.3.2 基于UML軟件視圖46
3.4 軟件架構(gòu)的作用49
3.5 常見的軟件架構(gòu)模式51
3.5.1 分層模式51
3.5.2 客戶端—服務(wù)器模式51
3.5.3 瀏覽器—服務(wù)器模式52
3.5.4 管道—過濾器模式53
3.5.5 微服務(wù)模式54
3.6 軟件架構(gòu)與軟件框架54
思考與習(xí)題56
框架篇
第4章 Spring框架基礎(chǔ)58
4.1 Java企業(yè)級(jí)開發(fā)58
4.2 Spring框架概述59
4.2.1 Spring框架的發(fā)展
歷史59
4.2.2 Spring框架的優(yōu)勢(shì)60
4.2.3 Spring框架的體系
結(jié)構(gòu)61
4.3 Spring開發(fā)環(huán)境搭建63
4.3.1 安裝JDK63
4.3.2 安裝IDE63
4.3.3 獲取Spring框架64
4.3.4 第一個(gè)Spring應(yīng)用
程序66
思考與練習(xí)68
第5章 Spring的控制反轉(zhuǎn)機(jī)制69
5.1 控制反轉(zhuǎn)的概念69
5.1.1 控制反轉(zhuǎn)的理解69
5.1.2 Spring中的控制反轉(zhuǎn)71
5.2 基于XML的配置—Bean
的實(shí)例化73
5.2.1 基于默認(rèn)構(gòu)造函數(shù)73
5.2.2 基于靜態(tài)工廠74
5.2.3 基于實(shí)例工廠75
5.3 基于XML的配置—Bean
的生命周期75
5.3.1 Bean的作用范圍75
5.3.2 延遲初始化77
5.3.3 Bean的初始化方法和
銷毀方法77
5.4 基于XML的配置—基于
setter的屬性注入78
5.4.1 字面值的setter注入78
5.4.2 對(duì)象類型的setter注入79
5.4.3 集合類型的setter注入81
5.5 基于XML的配置—基于
構(gòu)造函數(shù)的屬性注入83
5.5.1 按順序匹配84
5.5.2 按索引匹配85
5.5.3 按類型匹配85
5.5.4 按名稱匹配85
5.5.5 混合匹配86
5.6 基于XML的配置—工廠
方法注入88
5.6.1 工廠方法注入88
5.6.2 工廠方法注入應(yīng)用
實(shí)例88
5.7 基于XML的配置—基于
p命名空間、util命名空間和
c命名空間的屬性注入89
5.7.1 p命名空間89
5.7.2 util命名空間90
5.7.3 c命名空間91
5.8 基于XML的配置—Bean
之間的關(guān)系92
5.8.1 繼承92
5.8.2 依賴93
5.9 基于注解的配置94
5.9.1 注冊(cè)Bean的注解95
5.9.2 管理Bean的生命周期
的注解95
5.9.3 用于屬性注入的注解96
5.9.4 基于注解的配置應(yīng)用
實(shí)例:三層體系結(jié)構(gòu)
應(yīng)用101
5.10 基于Java類的配置102
思考與練習(xí)104
第6章 Spring的面向切面編程
機(jī)制105
6.1 面向切面編程概述105
6.1.1 問題的提出105
6.1.2 面向切面編程的概念106
6.1.3 Spring AOP概述107
6.2 Spring AOP—編程式108
6.2.1 增強(qiáng)110
6.2.2 切面116
6.3 Spring AOP—聲明式120
6.3.1 配置增強(qiáng)120
6.3.2 配置切面122
6.4 Spring AOP—AspectJ123
6.4.1 基于注解124
6.4.2 基于配置127
思考與練習(xí)130
第7章 Spring MVC基礎(chǔ)131
7.1 MVC的概念131
7.2 Spring MVC概述132
7.2.1 Spring MVC的
結(jié)構(gòu)和運(yùn)行原理132
7.2.2 第一個(gè)Spring MVC
應(yīng)用程序132
7.3 請(qǐng)求的響應(yīng)137
7.3.1 @RequestMapping
注解138
7.3.2 @RequestMapping
注解的成員138
7.4 請(qǐng)求參數(shù)的綁定148
7.4.1 字面值參數(shù)的綁定148
7.4.2 對(duì)象類型參數(shù)的綁定149
7.4.3 數(shù)組類型參數(shù)的綁定150
7.4.4 路徑變量152
7.4.5 請(qǐng)求參數(shù)綁定時(shí)的
數(shù)據(jù)校驗(yàn)153
7.5 視圖與視圖的選擇156
7.5.1 視圖與視圖解析器156
7.5.2 視圖的選擇157
7.5.3 配置多個(gè)視圖解析器159
思考與練習(xí)161
第8章 Spring MVC高級(jí)功能162
8.1 攔截器162
8.1.1 攔截器的概念162
8.1.2 使用攔截器162
8.2 異常處理166
8.2.1 異常處理概述166
8.2.2 自定義全局異常
處理器166
8.3 文件上傳下載169
8.3.1 文件上傳169
8.3.2 文件下載174
8.4 靜態(tài)資源訪問175
8.4.1 配置默認(rèn)Servlet176
8.4.2 注冊(cè)DefaultServletHttp
RequestHandler177
8.4.3 配置資源映射177
8.5 JSON數(shù)據(jù)交換和RESTful
應(yīng)用177
8.5.1 JSON數(shù)據(jù)格式178
8.5.2 Spring MVC中的
JSON數(shù)據(jù)交換179
8.5.3 REST的概念183
8.5.4 編寫RESTful應(yīng)用183
思考與練習(xí)188
第9章 MyBatis框架基礎(chǔ)189
9.1 MyBatis概述189
9.1.1 傳統(tǒng)JDBC的劣勢(shì)189
9.1.2 ORM簡介190
9.1.3 MyBatis簡介191
9.1.4 MyBatis的功能架構(gòu)192
9.1.5 MyBatis的工作流程193
9.1.6 MyBatis的下載與
使用195
9.2 MyBatis重要API簡介196
9.3 MyBatis的配置文件199
9.3.1 properties元素200
9.3.2 settings元素201
9.3.3 typeAliases元素202
9.3.4 typeHandlers元素202
9.3.5 objectFactory元素203
9.3.6 environments元素203
9.3.7 mappers元素204
9.4 第一個(gè)MyBatis應(yīng)用程序204
9.4.1 搭建開發(fā)運(yùn)行環(huán)境205
9.4.2 創(chuàng)建XML配置文件206
9.4.3 創(chuàng)建類文件207
思考與練習(xí)209
第10章 單表的CRUD操作210
10.1 數(shù)據(jù)查詢操作210
10.1.1 結(jié)果映射resultMap210
10.1.2 使用selectList()方法
查詢212
10.1.3 多參數(shù)查詢213
10.1.4 動(dòng)態(tài)查詢215
10.2 使用insert元素添加數(shù)據(jù)221
10.2.1 主鍵由數(shù)據(jù)表
自增長222
10.2.2 主鍵非自增長224
10.3 使用delete元素刪除數(shù)據(jù)224
10.4 使用update元素修改數(shù)據(jù)226
10.5 使用getMapper接口和
工具類簡化代碼編寫228
思考與練習(xí)230
第11章 多表關(guān)聯(lián)映射231
11.1 關(guān)聯(lián)關(guān)系基礎(chǔ)231
11.2 一對(duì)一關(guān)聯(lián)操作232
11.3 一對(duì)多關(guān)聯(lián)操作236
11.3.1 單向一對(duì)多操作236
11.3.2 單向多對(duì)一操作240
11.4 多對(duì)多關(guān)聯(lián)操作241
11.5 使用MyBatis注解246
11.5.1 SQL語句映射注解247
11.5.2 結(jié)果集映射注解248
11.5.3 關(guān)系映射注解248
11.5.4 注解應(yīng)用實(shí)例249
思考與練習(xí)250
實(shí)戰(zhàn)篇
第12章 學(xué)員信息管理系統(tǒng)252
12.1 項(xiàng)目需求概述252
12.2 項(xiàng)目數(shù)據(jù)庫設(shè)計(jì)252
12.3 SSM框架整合253
12.3.1 開發(fā)架包的準(zhǔn)備253
12.3.2 創(chuàng)建項(xiàng)目資源文件255
12.3.3 web.xml文件配置255
12.3.4 Spring配置256
12.3.5 Spring MVC配置258
12.3.6 MyBatis配置259
12.4 項(xiàng)目的主要功能實(shí)現(xiàn)259
12.4.1 學(xué)員信息管理的
實(shí)現(xiàn)259
12.4.2 教練信息管理的
實(shí)現(xiàn)268
思考與練習(xí)269
第13章 數(shù)字化社區(qū)信息管理系統(tǒng)270
13.1 項(xiàng)目需求概述270
13.2 項(xiàng)目數(shù)據(jù)庫設(shè)計(jì)271
13.2.1 權(quán)限管理數(shù)據(jù)表
設(shè)計(jì)271
13.2.2 流程管理數(shù)據(jù)表
設(shè)計(jì)272
13.2.3 具體業(yè)務(wù)管理
數(shù)據(jù)表設(shè)計(jì)273
13.3 項(xiàng)目整體架構(gòu)設(shè)計(jì)274
13.3.1 代碼整體結(jié)構(gòu)設(shè)計(jì)274
13.3.2 前后端分離設(shè)計(jì)275
13.3.3 實(shí)體關(guān)系映射設(shè)計(jì)278
13.3.4 系統(tǒng)可擴(kuò)展性設(shè)計(jì)283
13.4 項(xiàng)目主要功能的實(shí)現(xiàn)288
13.4.1 居民信息管理的實(shí)現(xiàn)288
13.4.2 重點(diǎn)人群管理的實(shí)現(xiàn)290
13.5 本案例的啟發(fā)293
思考與練習(xí)294
參考文獻(xiàn)295