Java Web快速開(kāi)發(fā)教程(慕課版)—— Spring Boot+MyBatis實(shí)戰(zhàn)
定 價(jià):39 元
- 作者:師敏華
- 出版時(shí)間:2020/11/1
- ISBN:9787560657974
- 出 版 社:西安電子科技大學(xué)出版社
- 中圖法分類:TP312.8
- 頁(yè)碼:256
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16K
本書(shū)主要介紹Java語(yǔ)言及其Web開(kāi)發(fā)。全書(shū)共14章,前12章講述了Java基礎(chǔ)知識(shí)及部分常用的高級(jí)知識(shí)。第13章詳細(xì)講解了當(dāng)前主流的數(shù)據(jù)庫(kù)訪問(wèn)框架MyBatis。第14章講述了Spring Boot開(kāi)發(fā)框架,并且通過(guò)完整的示例程序講述了如何應(yīng)用Spring Boot開(kāi)發(fā)Web應(yīng)用。
本書(shū)可作為高等學(xué)校計(jì)算機(jī)、軟件及相關(guān)專業(yè)本科高年級(jí)學(xué)生的教材或研究生的參考書(shū),也可供從事計(jì)算機(jī)相關(guān)工作的工程技術(shù)人員參考。
從1996年1月Sun公司發(fā)布Java的第一個(gè)開(kāi)發(fā)工具包JDK 1.0 至今的二十多年時(shí)間里,除最初的幾年外,Java語(yǔ)言幾乎一直獨(dú)占編程語(yǔ)言榜首。盡管最近幾年P(guān)ython、Go等語(yǔ)言發(fā)展迅速,但其在未來(lái)一段時(shí)間內(nèi)仍難以撼動(dòng)Java語(yǔ)言的地位。Java之所以有如此地位,不僅僅在于Java語(yǔ)言本身比較優(yōu)秀,更是因?yàn)镴ava語(yǔ)言有龐大的生態(tài)圈。換一種編程語(yǔ)言并非難事,但困難在于如何替代其龐大的生態(tài)圈。因此,從這個(gè)意義上來(lái)說(shuō),作為一個(gè)程序員,尤其是需要和互聯(lián)網(wǎng)以及新興的物聯(lián)網(wǎng)打交道的人來(lái)說(shuō),熟悉Java編程是一條必由之路。
Java語(yǔ)言本身的學(xué)習(xí)難度并不是太大,因?yàn)镴ava語(yǔ)言建立在C++?的基礎(chǔ)之上,它在語(yǔ)法等方面和C++?很相似。如果有C/C++?基礎(chǔ)的話,可以很快掌握J(rèn)ava語(yǔ)言。盡管掌握J(rèn)ava語(yǔ)言本身相對(duì)比較容易,但是要將其用起來(lái)并不是一件很容易的事情,其原因之一就是Java的生態(tài)圈太大,對(duì)于同一個(gè)問(wèn)題有多種框架或者解決方案可供選擇,這么多框架如何選擇,如何學(xué)習(xí),是擺在每一個(gè)Java編程人員面前的難題。
本書(shū)前12章講述了Java基礎(chǔ)知識(shí)和常用的高級(jí)知識(shí)。對(duì)于Java語(yǔ)言中的SWING沒(méi)有進(jìn)行講解。盡管SWING是一種不錯(cuò)的GUI編程工具包,但如果想用SWING實(shí)現(xiàn)非常漂亮和炫目的界面有一定的難度。另外,本書(shū)對(duì)于一些相對(duì)過(guò)時(shí)的技術(shù),比如Applet、WebStart等也未作講述。還有一些常用但較為瑣碎的技術(shù)也未作講解,比如安全、簽名、國(guó)際化等。關(guān)于這些方面的知識(shí),讀者在學(xué)習(xí)完本書(shū)之后可以參考相關(guān)資料。
第13章講解了數(shù)據(jù)庫(kù)訪問(wèn)的主流框架MyBatis。通過(guò)本章的學(xué)習(xí),讀者可以掌握MyBatis的核心用法,能夠輕易將MyBatis融入自己的Java項(xiàng)目中。
第14章通過(guò)一個(gè)簡(jiǎn)單的Colyba職員信息系統(tǒng)示例,講解了如何創(chuàng)建和開(kāi)發(fā)一個(gè)完整的Spring Boot項(xiàng)目。
本書(shū)由師敏華、沈玉龍、張志為合作編寫(xiě)。許王哲、崔志浩、景玉、劉家繼、溫嘉偉、黃藝萌、常佳俊、王強(qiáng)、張一凡等學(xué)生參與了本書(shū)配套慕課資源的完成與在線練習(xí)系統(tǒng)的建設(shè)等相關(guān)工作。本書(shū)的出版得到了教育部產(chǎn)學(xué)合作協(xié)同育人項(xiàng)目(201901113011、201901156033)的支持。
限于作者水平,書(shū)中難免會(huì)有欠妥之處,懇請(qǐng)讀者批評(píng)指正。
第1章 ?Java發(fā)展史與項(xiàng)目構(gòu)建 1
1.1 ?Java版本發(fā)展 1
1.1.1 ?Java版本演進(jìn) 1
1.1.2 ?EJB 2
1.1.3 ?JDK與JRE 2
1.1.4 ?JVM 2
1.1.5 ?JavaScript 3
1.2 集成開(kāi)發(fā)環(huán)境 3
1.2.1 ?IDE的優(yōu)勢(shì) 3
1.2.2 ?STS安裝 4
1.2.3 ?HelloWorld 5
1.2.4 ?Eclipse常用操作 9
1.3 ?Java程序編譯與運(yùn)行 9
1.3.1 包 10
1.3.2 ?Java程序的發(fā)布形式 10
1.3.3 ?Java的main方法 11
1.3.4 ?Java程序的運(yùn)行 11
1.3.5 運(yùn)行參數(shù) 11
1.3.6 ?JVM內(nèi)存回收機(jī)制 13
1.3.7 ?Java程序分析調(diào)測(cè)工具 14
1.4 ?Maven 17
1.4.1 ?Maven的配置文件 17
1.4.2 ?pom.xml 18
1.4.3 ?Maven執(zhí)行 27
1.5 持續(xù)集成 27
第2章 ?Java基本程序結(jié)構(gòu) 29
2.1 數(shù)據(jù)類型 29
2.1.1 基本數(shù)據(jù)類型 29
2.1.2 ?String 30
2.1.3 運(yùn)算符 32
2.1.4 數(shù)組 32
2.1.5 常量 33
2.2 控制流程 33
2.2.1 塊作用域 33
2.2.2 條件語(yǔ)句 34
2.2.3 循環(huán)語(yǔ)句 35
2.2.4 ?switch 36
2.2.5 中斷語(yǔ)句 36
2.2.6 ?try塊 37
第3章 類 38
3.1 類的定義 38
3.2 控制可見(jiàn)范圍的修飾符 38
3.3 構(gòu)造器 39
3.4 ?this 41
3.5 ?final 43
3.6 ?static 43
3.7 參數(shù)傳遞 45
3.8 參數(shù)數(shù)量可變的參數(shù)傳遞 46
第4章 繼承與接口 48
4.1 繼承 48
4.1.1 多態(tài) 48
4.1.2 抽象類 50
4.1.3 Object 51
4.2 接口 53
4.2.1 定義 54
4.2.2 接口增強(qiáng) 55
4.2.3 ?clone 56
第5章 內(nèi)部類與枚舉 59
5.1 內(nèi)部類 59
5.1.1 普通內(nèi)部類 59
5.1.2 靜態(tài)內(nèi)部類 60
5.1.3 局部?jī)?nèi)部類 60
5.1.4 匿名內(nèi)部類 60
5.1.5 內(nèi)部類的特性 63
5.2 ?lambda表達(dá)式 63
5.2.1 ?lambda表達(dá)式的作用域 64
5.2.2 函數(shù)式接口 64
5.2.3 ?forEach和方法引用:: 65
5.3 枚舉 66
5.3.1 簡(jiǎn)單枚舉的定義 66
5.3.2 帶有構(gòu)造器的枚舉 66
5.3.3 綁定方法的枚舉 67
5.3.4 枚舉的values和toString 68
第6章 泛型 69
6.1 固定類型 69
6.2 通配符類型 72
6.2.1 ?< ? extends T> 和< ? super T >
的區(qū)別 74
6.2.2 無(wú)限定通配類型 77
第7章 集合 78
7.1 集合接口概述 78
7.2 列表、集 78
7.3 映射表 79
7.4 集合運(yùn)算操作 79
7.5 屬性映射表 81
7.6 應(yīng)用實(shí)例 82
第8章 異常處理與多線程 89
8.1 異常的拋出與捕獲 89
8.1.1 異常的分類 89
8.1.2 異常的拋出 89
8.1.3 自定義異常 90
8.1.4 異常的捕獲 90
8.1.5 異常的包裝 91
8.2 線程創(chuàng)建 92
8.3 線程池 93
8.3.1 ?ThreadPoolExecutor 93
8.3.2 ?Executors 97
8.4 ?Callable與Future 97
8.5 線程的同步 100
第9章 本地IO與遠(yuǎn)程通信 101
9.1 輸入與輸出流 101
9.1.1 ?InputStream和OutputStream 101
9.1.2 ?FileInputStream和
?FileOutputStream 102
9.1.3 ?Reader和Writer 102
9.1.4 ?RandomAccessFile 103
9.2 內(nèi)存映射文件 103
9.2.1 內(nèi)存映射文件的使用 104
9.2.2 文件加鎖機(jī)制 105
9.3 文件管理 105
9.4 對(duì)象序列化 106
9.4.1 transient 106
9.4.2 對(duì)象的保存和加載 106
9.5 ?RMI 107
9.6 ?JMS 110
第10章 數(shù)據(jù)庫(kù)與數(shù)據(jù)流操作 111
10.1 ?JDBC概述 111
10.1.1 ?JDBC驅(qū)動(dòng)類 111
10.1.2 連接數(shù)據(jù)庫(kù) 112
10.2 執(zhí)行SQL 112
10.3 流的概述 115
10.4 流的創(chuàng)建 116
10.4.1 集合對(duì)象產(chǎn)生流 116
10.4.2 ?Arrays產(chǎn)生流 116
10.4.3 ?Stream接口產(chǎn)生流 116
10.4.4 ?Files產(chǎn)生流 117
10.5 流的操作 117
10.5.1 ?filter、map和flatMap 117
10.5.2 ?limit、skip和concat 118
10.5.3 ?distinct、sorted和peek 118
10.6 流的約簡(jiǎn) 119
10.6.1 簡(jiǎn)單約簡(jiǎn) 119
10.6.2 ?Optional 120
10.6.3 ?reduce 121
10.7 結(jié)果收集 122
第11章 注解 124
11.1 概述 124
11.2 注解的定義及使用 124
11.3 標(biāo)準(zhǔn)注解 125
11.3.1 元注解 126
11.3.2 ?PostConstruct和Resource 128
11.4 注解式編程 128
第12章 反射與代理 131
12.1 概述 131
12.2 反射 131
12.2.1 ?Class類 131
12.2.2 使用反射創(chuàng)建類對(duì)象 133
12.2.3 使用反射創(chuàng)建類對(duì)象及方法
調(diào)用 134
12.3 代理 135
第13章 ?MyBatis 140
13.1 ?MyBatis概述 140
13.1.1 ?Java數(shù)據(jù)庫(kù)編程 140
13.1.2 ?MyBatis發(fā)展歷史 140
13.1.3 下載MyBatis 141
13.1.4 ?MyBatis三要素 141
13.2 ?MyBatis全局配置文件 142
13.2.1 ?XML文件的約束 142
13.2.2 ?MyBatis全局配置文件 144
13.2.3 ?environment和mapper 144
13.2.4 ?typeAliases 147
13.2.5 ?typeHandlers 148
13.2.6 ?objectFactory 150
13.2.7 ?plugins 150
13.2.8 ?databaseIdProvider 150
13.2.9 ?settings 151
13.3 ?MyBatis映射文件 151
13.4 ?select 151
13.4.1 參數(shù)傳遞 152
13.4.2 參數(shù)引用 158
13.4.3 ?resultType 158
13.4.4 ?resultMap 160
13.4.5 分步查詢與延遲加載 166
13.5 ?insert、update和delete 169
13.5.1 更改提交 170
13.5.2 自增主鍵獲取 171
13.6 動(dòng)態(tài)SQL 172
13.6.1 ?if 173
13.6.2 ?choose 175
13.6.3 ?foreach 176
13.6.4 ?bind和模糊匹配 179
13.6.5 ?_databaseId和_parameter 179
13.7 抽取可重用SQL 181
13.8 ?OGNL常用操作及轉(zhuǎn)義符 181
13.8.1 ?OGNL常用操作 181
13.8.2 轉(zhuǎn)義符 182
13.9 存儲(chǔ)過(guò)程 182
13.10 緩存機(jī)制 183
13.10.1 一級(jí)緩存 183
13.10.2 二級(jí)緩存 184
13.10.3 緩存的設(shè)置選項(xiàng) 185
13.10.4 三方緩存的整合 185
13.11 插件應(yīng)用及分頁(yè)插件
?PageHelper 185
13.11.1 插件應(yīng)用 185
13.11.2 分頁(yè)插件PageHelper 186
13.12 批量操作 187
第14章 ?Spring Boot 188
14.1 ?Spring及Spring Boot概述 188
14.1.1 ?Spring簡(jiǎn)介 188
14.1.2 ?Spring MVC 188
14.1.3 ?DI和AOP 189
14.1.4 ?Spring Boot簡(jiǎn)介 189
14.2 ?Http編程基礎(chǔ) 190
14.2.1 概述 190
14.2.2 ?Http請(qǐng)求和響應(yīng) 190
14.2.3 ?HttpServletRequest和
HttpServletResponse 191
14.3 ?Spring Boot開(kāi)發(fā)模式 193
14.3.1 前后端分離 193
14.3.2 ?Spring Boot Web應(yīng)用分層 193
14.3.3 ?Spring Boot啟動(dòng)類 193
14.4 ?Spring Boot注解 194
14.4.1 ?Component和ComponentScan 194
14.4.2 ?Autowired 194
14.4.3 ?SpringBootApplication 195
14.4.4 ?Service、Configuration和
Repository 195
14.4.5 控制器層相關(guān)注解 195
14.4.6 ?ConfigurationProperties和
Value 195
14.5 ?Spring Boot配置文件 197
14.5.1 概述 197
14.5.2 ?yaml文件 197
14.5.3 ?application 198
14.6 ?Spring Boot開(kāi)發(fā)示例 199
14.6.1 示例項(xiàng)目Colyba 199
14.6.2 創(chuàng)建Colyba框架 199
14.6.3 ?Colyba項(xiàng)目結(jié)構(gòu) 201
14.6.4 ?Colyba資源文件 202
14.6.5 ?Colyba的Dao層 206
14.6.6 ?Colyba的Service層 207
14.6.7 ?Colyba的Controller 213
14.6.8 ?Colyba的啟動(dòng)類 219
14.6.9 ?Colyba的pom 219
14.6.10 ?Colyba測(cè)試 221
14.7 ?Spring Boot數(shù)據(jù)源 224
14.7.1 多數(shù)據(jù)源配置 224
14.7.2 ?MyBatis全局配置 236
14.7.3 連接池 237
14.7.4 事務(wù) 240
14.8 ?Spring Boot的常用功能 241
14.8.1 攔截器 241
14.8.2 定時(shí)任務(wù) 242
參考文獻(xiàn) 246