Spring Boot+MVC實(shí)戰(zhàn)指南
定 價:99.9 元
當(dāng)前圖書已被 55 所學(xué)校薦購過!
查看明細(xì)
- 作者:高洪巖
- 出版時間:2022/1/1
- ISBN:9787115580610
- 出 版 社:人民郵電出版社
- 中圖法分類:TP312.8-62
- 頁碼:368
- 紙張:
- 版次:01
- 開本:16開
《Spring Boot+MVC實(shí)戰(zhàn)指南》主要講解如何在Spring Boot框架中開發(fā)MVC應(yīng)用,包括主流的JavaEE框架,如MyBatis、Spring、SpringMVC、FreeMarker和Thymeleaf等。讀者可以進(jìn)行“精要”式學(xué)習(xí),正確地進(jìn)行項目實(shí)戰(zhàn),同時汲取JavaEE的思想,并最終將這種思想靈活運(yùn)用到實(shí)際工作中。
《Spring Boot+MVC實(shí)戰(zhàn)指南》主要涉及MVC框架的原理實(shí)現(xiàn)、上傳、下載、數(shù)據(jù)驗(yàn)證、國際化、多模塊分組開發(fā)、轉(zhuǎn)發(fā)/重定向、JSON的解析、將Ajax及JSON和MVC框架進(jìn)行整合開發(fā),以及MyBatis中映射文件的使用。本書還介紹了Spring中的核心技術(shù)(依賴注入與AOP),掌握這兩項技術(shù)是學(xué)習(xí)Spring的重中之重。
《Spring Boot+MVC實(shí)戰(zhàn)指南》語言簡潔,示例豐富,以掌握實(shí)用技術(shù)為目的,幫助讀者迅速掌握使用主流開源JavaEE框架進(jìn)行開發(fā)所需的各種技能。本書適合已具有一定Java編程基礎(chǔ)(具有Servlet編程經(jīng)驗(yàn))的讀者閱讀,也可供Java平臺下進(jìn)行各類軟件開發(fā)的開發(fā)人員、測試人員參考。
為了提高讀者學(xué)習(xí)JavaEE的效率,增強(qiáng)其項目實(shí)戰(zhàn)能力,以便在進(jìn)入新的軟件開發(fā)崗位后能立即投身到開發(fā)工作中,本書從實(shí)戰(zhàn)出發(fā),為讀者講解開發(fā)企業(yè)級應(yīng)用軟件的常備知識,以幫助讀者進(jìn)行“精要”式的學(xué)習(xí),汲取Java EE的思想,正確地進(jìn)行項目實(shí)戰(zhàn)。
本書內(nèi)容涉及Spring的內(nèi)部原理和實(shí)戰(zhàn)應(yīng)用、Spring MVC常用技巧和高頻使用案例、MyBatis的海量數(shù)據(jù)和高性能數(shù)據(jù)庫處理,以及標(biāo)簽庫引擎FreeMarker和Thymeleaf的使用。
本書適合具有一定Java編程基礎(chǔ)的軟件開發(fā)人員、測試人員閱讀。
本書主要內(nèi)容:
Spring核心技術(shù)之IoC;
Spring核心技術(shù)之AOP;
Spring 5 MVC實(shí)戰(zhàn)技術(shù);
MyBatis 3核心技術(shù)之必備技能;
MyBatis 3核心技術(shù)之實(shí)戰(zhàn)技能;
模板引擎FeeMaker和Thymeleaf的使用。
高洪巖,世界500強(qiáng)企業(yè)高級項目經(jīng)理,具有10余年項目管理與開發(fā)經(jīng)驗(yàn),在多線程和并發(fā)、Android移動開發(fā)、智能報表和分布式處理等企業(yè)級架構(gòu)技術(shù)領(lǐng)域深耕多年,深諳Java技術(shù)開發(fā)要點(diǎn)與難點(diǎn),擁有良好的技術(shù)素養(yǎng)和豐富的實(shí)踐經(jīng)驗(yàn),一直在持續(xù)關(guān)注架構(gòu)的優(yōu)化和重構(gòu)領(lǐng)域,喜歡用技術(shù)與理論相結(jié)合的方式分享知識,以共同提高。著有《Java多線程編程核心技術(shù)》《Java并發(fā)編程:核心方法與框架》《Java EE核心框架實(shí)戰(zhàn)》《NIO與Socket編程技術(shù)指南》《虛擬化高性能NoSQL存儲案例精粹:Redis+Docker》《Java Web實(shí)操》等書籍。
第 1章 Spring 5核心技術(shù)之IoC 1
1.1 什么是框架 1
1.2 反射與XML操作 1
1.2.1 基礎(chǔ)知識準(zhǔn)備——反射 1
1.2.2 基礎(chǔ)知識準(zhǔn)備——操作XML文件 13
1.3 Spring框架介紹 20
1.4 Spring框架的模塊組成 20
1.5 控制反轉(zhuǎn)和依賴注入介紹 21
1.6 IoC容器介紹 22
1.7 AOP介紹 22
1.8 初步體會IoC的優(yōu)勢 23
1.8.1 傳統(tǒng)方式 23
1.8.2 Spring方式 24
1.8.3 依賴注入的原理是反射 28
1.9 在Spring中創(chuàng)建JavaBean 28
1.9.1 使用創(chuàng)建對象 29
1.9.2 使用創(chuàng)建并獲取對象 30
1.9.3 使用“全注解”法創(chuàng)建對象 30
1.9.4 使用“全注解”法獲取對象時出現(xiàn)NoUniqueBeanDefinitionException異常的解決辦法 32
1.9.5 使用@ComponentScan(basePackages="")創(chuàng)建并獲取對象 33
1.9.6 使用@ComponentScan(basePackages="")掃描多個包 34
1.9.7 使用@ComponentScan的basePackageClasses屬性進(jìn)行掃描 36
1.9.8 使用@ComponentScan而不使用basePackages屬性時的效果 37
1.9.9 解決不同包中有相同類名時出現(xiàn)異常的問題 38
1.9.10 推薦使用的代碼結(jié)構(gòu) 40
1.9.11 使用@Lazy注解實(shí)現(xiàn)延遲加載 40
1.9.12 出現(xiàn)Overriding bean definition情況時的解決方法 42
1.9.13 在IoC容器中創(chuàng)建單例對象和多例對象 43
1.10 裝配Spring Bean 45
1.10.1 使用注解法注入對象 45
1.10.2 多實(shí)現(xiàn)類的歧義性 46
1.10.3 使用@Autowired注解向構(gòu)造方法的參數(shù)進(jìn)行注入 49
1.10.4 使用@Autowired注解向方法的參數(shù)進(jìn)行注入 50
1.10.5 使用@Autowired注解向字段進(jìn)行注入 50
1.10.6 使用@Inject注解向字段、方法和構(gòu)造方法進(jìn)行注入 51
1.10.7 使用@Bean注解向工廠方法的參數(shù)進(jìn)行注入 53
1.10.8 使用@Autowired(required = false)的寫法 54
1.10.9 使用@Bean對JavaBean的id重命名 56
1.10.10 Spring上下文的相關(guān)知識 58
1.10.11 BeanFactory與ApplicationContext 65
1.10.12 使用注解@Value進(jìn)行注入 65
1.10.13 解決BeanCurrentlyInCreationException異常問題 67
第 2章 Spring 5核心技術(shù)之AOP 71
2.1 AOP 71
2.2 AOP原理之代理設(shè)計模式 71
2.2.1 靜態(tài)代理的實(shí)現(xiàn) 72
2.2.2 使用JDK實(shí)現(xiàn)動態(tài)代理 74
2.2.3 使用Spring實(shí)現(xiàn)動態(tài)代理 76
2.2.4 使用cglib實(shí)現(xiàn)動態(tài)代理 79
2.2.5 使用javassist實(shí)現(xiàn)動態(tài)代理 80
2.3 AOP相關(guān)的概念 81
2.3.1 橫切關(guān)注點(diǎn) 82
2.3.2 切面 82
2.3.3 連接點(diǎn) 84
2.3.4 切點(diǎn) 84
2.3.5 通知 85
2.3.6 織入 85
2.4 AOP核心案例 86
2.4.1 實(shí)現(xiàn)前置通知、后置通知、返回通知和異常通知 86
2.4.2 向前置通知、后置通知、返回通知和異常通知傳入JoinPoint參數(shù) 91
2.4.3 實(shí)現(xiàn)環(huán)繞通知 92
2.4.4 使用bean表達(dá)式 92
2.4.5 使用@Pointcut定義全局切點(diǎn) 94
2.4.6 向切面?zhèn)魅雲(yún)?shù) 96
2.4.7 使用@AfterReturning和@AfterThrowing向切面?zhèn)魅雲(yún)?shù) 98
2.4.8 向環(huán)繞通知傳入?yún)?shù) 100
2.4.9 實(shí)現(xiàn)多切面的應(yīng)用 102
2.4.10 使用@Order注解制定切面的運(yùn)行順序 105
第3章 Spring 5 MVC實(shí)戰(zhàn)技術(shù) 106
3.1 簡介 106
3.2 在Spring Boot框架中搭建Spring MVC開發(fā)環(huán)境 106
3.2.1 搭建Spring MVC開發(fā)環(huán)境 107
3.2.2 搭建CSS+JavaScript+HTML+JSP開發(fā)環(huán)境 114
3.3 核心技術(shù) 118
3.3.1 執(zhí)行控制層——無傳遞參數(shù) 118
3.3.2 執(zhí)行控制層——有傳遞參數(shù) 119
3.3.3 執(zhí)行控制層——有傳遞參數(shù)簡化版 120
3.3.4 實(shí)現(xiàn)登錄功能 120
3.3.5 將URL參數(shù)封裝到實(shí)體類 122
3.3.6 限制提交方式 123
3.3.7 控制層方法的參數(shù)類型 124
3.3.8 控制層方法的返回值類型 125
3.3.9 取得request-response-session對象 126
3.3.10 實(shí)現(xiàn)登錄失敗后的提示信息 126
3.3.11 向Controller控制層注入Service業(yè)務(wù)邏輯層 128
3.3.12 重定向——無傳遞參數(shù) 129
3.3.13 重定向——有傳遞參數(shù) 130
3.3.14 重定向傳遞參數(shù)——Redirect-Attributes.addAttribute()方法 131
3.3.15 重定向傳遞參數(shù)——Redirect-Attributes.addFlashAttribute()方法 132
3.3.16 使用jackson庫在服務(wù)端將JSON字符串轉(zhuǎn)換成各種Java數(shù)據(jù)類型 133
3.3.17 在控制層返回JSON對象 137
3.3.18 在控制層返回JSON字符串 139
3.3.19 使用HttpServletResponse對象輸出響應(yīng)字符 140
3.3.20 解決日期問題 142
3.3.21 單文件上傳1——使用MultipartHttpServletRequest 146
3.3.22 單文件上傳2——使用MultipartFile 147
3.3.23 單文件上傳3——使用MultipartFile并結(jié)合實(shí)體類 148
3.3.24 多文件上傳1——使用MultipartHttpServletRequest 149
3.3.25 多文件上傳2——使用MultipartFile[] 151
3.3.26 多文件上傳3——使用MultipartFile[]并結(jié)合實(shí)體類 152
3.3.27 使用AJAX實(shí)現(xiàn)文件上傳 154
3.3.28 支持中文文件名的文件下載 156
3.3.29 使用@RestController注解 157
3.4 擴(kuò)展技術(shù) 158
3.4.1 使用prefix和suffix簡化返回的視圖名稱 158
3.4.2 控制層返回List對象及實(shí)體 159
3.4.3 實(shí)現(xiàn)國際化 163
3.4.4 處理異!172
3.4.5 方法的參數(shù)是Model數(shù)據(jù)類型 177
3.4.6 方法的參數(shù)是ModelMap數(shù)據(jù)類型 178
3.4.7 方法的返回值是ModelMap數(shù)據(jù)類型 179
3.4.8 方法的返回值是ModelAndView數(shù)據(jù)類型 180
3.4.9 方法的返回值是ModelAndView數(shù)據(jù)類型(實(shí)現(xiàn)重定向) 182
3.4.10 使用@RequestAttribute和@SessionAttribute注解 182
3.4.11 使用@CookieValue和@RequestHeader注解 183
3.4.12 使用@SessionAttributes注解 184
3.4.13 使用@ModelAttribute注解實(shí)現(xiàn)作用域別名 186
3.4.14 在路徑中添加通配符的功能 187
3.4.15 控制層返回void數(shù)據(jù)的情況 188
3.4.16 解決多人開發(fā)路徑可能重復(fù)的問題 189
3.4.17 使用@PathVariable注解 191
3.4.18 通過URL參數(shù)訪問指定的業(yè)務(wù)方法 192
3.4.19 使用@GetMapping、@PostMapping、@PutMapping和@Delete Mapping注解 193
3.4.20 使用攔截器 197
3.4.21 Spring 5 MVC應(yīng)用AOP切面 203
第4章 MyBatis 3核心技術(shù)之必備技能 205
4.1 ORM簡介 205
4.2 MyBatis的優(yōu)勢 206
4.3 使用JDBC+反射技術(shù)實(shí)現(xiàn)泛型DAO 207
4.4 三大核心對象的介紹 213
4.5 三大核心對象的生命周期 213
4.6 使用MyBatis Generator插件:單模塊 214
4.6.1 操作Oracle數(shù)據(jù)庫 215
4.6.2 操作MySQL數(shù)據(jù)庫 222
4.7 使用MyBatis Generator插件:多模塊 227
4.7.1 操作Oracle數(shù)據(jù)庫 227
4.7.2 操作MySQL數(shù)據(jù)庫 232
4.8 自建環(huán)境使用Mapper接口操作Oracle-MySQL數(shù)據(jù)庫 236
4.8.1 接口-SQL映射的對應(yīng)關(guān)系 236
4.8.2 針對Oracle的CURD 237
4.8.3 針對MySQL的CURD 244
4.9 向Mapper接口傳入?yún)?shù)類型 250
4.10 從SQL映射取得返回值類型 253
第5章 MyBatis 3核心技術(shù)之實(shí)戰(zhàn)技能 255
5.1 實(shí)現(xiàn)輸出日志 255
5.2 SQL語句中特殊符號的處理 255
5.3 使用別名 256
5.3.1 系統(tǒng)預(yù)定義別名 256
5.3.2 使用type-aliases-package配置設(shè)置別名 257
5.3.3 別名重復(fù)的解決辦法 258
5.4 對yml文件中的數(shù)據(jù)庫密碼進(jìn)行加密 260
5.5 不同數(shù)據(jù)庫對執(zhí)行不同SQL語句的支持 262
5.5.1 使用實(shí)現(xiàn)執(zhí)行不同的SQL語句 262
5.5.2 如果SQL映射的id值相同,有無databaseId的優(yōu)先級 263
5.6 動態(tài)SQL 264
5.6.1 使用標(biāo)簽實(shí)現(xiàn)映射 264
5.6.2 標(biāo)簽與實(shí)體類有參構(gòu)造方法 265
5.6.3 使用${}拼接SQL語句 266
5.6.4 標(biāo)簽的使用 266
5.6.5 標(biāo)簽的使用 268
5.6.6 標(biāo)簽的使用 269
5.6.7 針對Oracle/MySQL實(shí)現(xiàn)like模糊查詢 270
5.6.8 標(biāo)簽的使用 271
5.6.9 標(biāo)簽的使用 272
5.6.10 標(biāo)簽的使用 273
5.6.11 使用執(zhí)行批量插入 274
5.6.12 使用標(biāo)簽對like語句進(jìn)行適配 276
5.6.13 使用標(biāo)簽規(guī)范SQL語句 278
5.7 讀寫大文本類型的數(shù)據(jù) 281
5.7.1 操作Oracle數(shù)據(jù)庫 281
5.7.2 操作MySQL數(shù)據(jù)庫 283
5.8 實(shí)現(xiàn)數(shù)據(jù)分頁 283
5.9 實(shí)現(xiàn)一對一級聯(lián) 284
5.9.1 數(shù)據(jù)表結(jié)構(gòu)和內(nèi)容以及關(guān)系 285
5.9.2 創(chuàng)建實(shí)體類 285
5.9.3 創(chuàng)建SQL映射文件 287
5.9.4 級聯(lián)解析 288
5.9.5 根據(jù)ID查詢記錄 288
5.9.6 查詢所有記錄 289
5.9.7 對SQL語句的執(zhí)行次數(shù)進(jìn)行優(yōu)化 289
5.10 實(shí)現(xiàn)一對多級聯(lián) 291
5.10.1 數(shù)據(jù)表結(jié)構(gòu)和內(nèi)容以及關(guān)系 291
5.10.2 創(chuàng)建實(shí)體類 291
5.10.3 創(chuàng)建SQL映射文件 293
5.10.4 級聯(lián)解析 294
5.10.5 根據(jù)ID查詢記錄 294
5.10.6 查詢所有記錄 294
5.10.7 對SQL語句的執(zhí)行次數(shù)進(jìn)行優(yōu)化 295
5.11 延遲加載 297
5.11.1 默認(rèn)采用立即加載策略 297
5.11.2 使用全局延遲加載策略與兩種加載方式 298
5.11.3 使用fetchType屬性設(shè)置局部加載策略 304
5.12 緩存的使用 305
5.12.1 一級緩存 305
5.12.2 二級緩存 307
5.12.3 驗(yàn)證update語句具有清除二級緩存的特性 308
5.13 Spring事務(wù)傳播特性 310
5.13.1 事務(wù)傳播特性REQUIRED 310
5.13.2 事務(wù)傳播特性SUPPORTS 311
5.13.3 事務(wù)傳播特性MANDATORY 311
5.13.4 事務(wù)傳播特性REQUIRES_NEW 312
5.13.5 事務(wù)傳播特性NOT_SUPPORTED 314
5.13.6 事務(wù)傳播特性NEVER 315
5.13.7 事務(wù)傳播特性NESTED 317
5.13.8 事務(wù)傳播特性總結(jié) 318
第6章 模板引擎FreeMarker和Thymeleaf的使用 320
6.1 使用FreeMarker模板引擎 321
6.1.1 FreeMarker的優(yōu)勢 321
6.1.2 FreeMarker的輸出 321
6.1.3 整合Spring Boot與輸出常見數(shù)據(jù)類型 322
6.1.4 輸出布爾值 327
6.1.5 輸出Date數(shù)據(jù)類型 328
6.1.6 循環(huán)集合中的數(shù)據(jù) 329
6.1.7 使用if命令實(shí)現(xiàn)判斷 333
6.1.8 判斷List的size值是否為0 334
6.1.9 處理null值 335
6.1.10 實(shí)現(xiàn)隔行變色 338
6.1.11 對象嵌套有null值的處理 340
6.1.12 比較運(yùn)算符 341
6.1.13 遺拾增補(bǔ) 342
6.1.14 填充select中的option 342
6.1.15 實(shí)現(xiàn)自動選中select中的option 343
6.1.16 實(shí)現(xiàn)頁面靜態(tài)化 344
6.1.17 將ftlh文件中的內(nèi)容輸出到內(nèi)存中 345
6.2 使用Thymeleaf模板引擎 346
6.2.1 整合Spring Boot與常見的使用方式 346
6.2.2 處理復(fù)雜數(shù)據(jù)類型 351
6.2.3 處理嵌套數(shù)據(jù)類型 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參數(shù)值 358
6.2.9 循環(huán)Array 359
6.2.10 循環(huán)List 359
6.2.11 循環(huán)Set 360
6.2.12 循環(huán)Map 361
6.2.13 生成Table 361
6.2.14 循環(huán)生成 362
6.2.15 獲得狀態(tài)變量 363
6.2.16 獲得狀態(tài)變量的簡化版 364
6.2.17 實(shí)現(xiàn)國際化 365
6.2.18 處理URL 366
6.2.19 處理布爾值 367
6.2.20 操作屬性 367