Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的就是希望簡化Spring企業(yè)級(jí)應(yīng)用開發(fā)的過程?梢哉f,Spring Boot是Spring框架發(fā)展歷史上的一次大的進(jìn)化,是社區(qū)中快速配置的腳手架,它直接省去了煩瑣的XML配置,從而避免了由配置錯(cuò)誤所帶來的尷尬。正是憑借著這些優(yōu)勢,Spring Boot迅速被廣大開發(fā)者接受并應(yīng)用于實(shí)際開發(fā)中,而且發(fā)展勢頭非常迅猛。由于Spring Boot非常契合微服務(wù)開發(fā)的理念,因此采用它進(jìn)行微服務(wù)應(yīng)用開發(fā)的企業(yè)也越來越多。
對(duì)于已經(jīng)學(xué)習(xí)過Spring框架的讀者來說,學(xué)習(xí)Spring Boot的門檻不高。學(xué)習(xí)Spring Boot,不僅可以讓代碼編寫更加簡單,而且還能輕松地集成各種類庫和框架。另外,掌握了Spring Boot,還可以快速開發(fā)單個(gè)微服務(wù)應(yīng)用,這對(duì)學(xué)習(xí)Spring Cloud微服務(wù)架構(gòu)更是事半功倍。微服務(wù)是企業(yè)級(jí)應(yīng)用開發(fā)的一大趨勢,而Spring Boot融合了微服務(wù)架構(gòu)的理念,這使得它其實(shí)已經(jīng)成為Java后端開發(fā)的行業(yè)標(biāo)準(zhǔn)之一。可以說,掌握Spring Boot與各種技術(shù)的集成開發(fā)是軟件開發(fā)人員的技能。
對(duì)于相關(guān)從業(yè)人員而言,迫切需要一本系統(tǒng)介紹Spring Boot開發(fā)技術(shù)的圖書,以幫助他們系統(tǒng)地學(xué)習(xí)這些技術(shù),從而滿足實(shí)際開發(fā)的需求。本書便是基于這個(gè)背景而編寫的,其價(jià)值在于總結(jié)了筆者在實(shí)際工作中積累的大量實(shí)踐經(jīng)驗(yàn),并提供了各種開發(fā)解決方案。本書可以幫助讀者從源碼、功能和案例等方面全面地理解Spring Boot企業(yè)級(jí)應(yīng)用開發(fā),從而讓他們?cè)陂_發(fā)過程中少走彎路。
《Spring Boot整合開發(fā)實(shí)戰(zhàn)》主要介紹Spring Boot如何快速配置并集成Spring MVC、Spring Data、Spring Batch和Spring Security等優(yōu)秀框架和組件進(jìn)行開發(fā)。本書語言簡練,沒有深?yuàn)W難懂的專業(yè)術(shù)語,更沒有高深的理論,而是完全從開發(fā)者的角度講解實(shí)戰(zhàn)步驟。讀者只要認(rèn)真閱讀本書并進(jìn)行編碼實(shí)踐,就可以較好地掌握書中的內(nèi)容,從而勝任Spring Boot項(xiàng)目開發(fā)工作。本書是筆者工作經(jīng)驗(yàn)的總結(jié),相關(guān)技術(shù)人員可以作為開發(fā)手冊(cè)隨時(shí)翻閱。
《Spring Boot整合開發(fā)實(shí)戰(zhàn)》特色
內(nèi)容全面:本書全面介紹Spring Boot在各種開發(fā)場景中的應(yīng)用,內(nèi)容豐富,涉及面廣,涵蓋起步依賴、Web開發(fā)、數(shù)據(jù)庫、緩存、消息隊(duì)列、定時(shí)任務(wù)和批處理等相關(guān)技術(shù)。
內(nèi)容新穎:本書主要基于Spring Boot 2.2.6這個(gè)流行版本完成各種框架和組件的集成開發(fā),涉及的技術(shù)都是當(dāng)前開發(fā)中經(jīng)常要使用的熱門技術(shù)和新技術(shù)。
注重實(shí)戰(zhàn):本書結(jié)合大量示例,從實(shí)際編碼的角度進(jìn)行講解,所講述的知識(shí)點(diǎn)大多是筆者在多年的開發(fā)工作中積累的寶貴經(jīng)驗(yàn),可以讓讀者避免掉坑,少走彎路。
源碼剖析:筆者以典型示例結(jié)合源碼剖析的方式完美地呈現(xiàn)技術(shù)要點(diǎn),可以幫助讀者加深對(duì)編碼的理解,提升實(shí)際編碼的能力。
《Spring Boot整合開發(fā)實(shí)戰(zhàn)》內(nèi)容
第1篇 Spring Boot開發(fā)基礎(chǔ)
本篇涵蓋第1、2章,主要介紹Spring Boot開發(fā)環(huán)境的配置與搭建,讓讀者從整體上了解Spring Boot的開發(fā)過程。另外,本篇還重點(diǎn)介紹Spring Boot的啟動(dòng)原理與加載邏輯,幫助讀者理解Spring框架的IoC和AOP設(shè)計(jì)模式,從而掌握Spring Boot自動(dòng)配置的實(shí)現(xiàn)過程,為后續(xù)章節(jié)打好理論基礎(chǔ)。
第2篇 第三方組件集成
本篇涵蓋第3~11章,主要對(duì)Spring Boot的第三方組件的功能模塊進(jìn)行源碼分析,介紹組件的集成過程,并通過示例代碼進(jìn)行演示和總結(jié),從而達(dá)到讓讀者能夠上手開發(fā)的目的。本篇屬于全書的重點(diǎn),需要讀者很好地掌握并進(jìn)行相應(yīng)的實(shí)踐。
第3篇 項(xiàng)目案例實(shí)戰(zhàn)
本篇涵蓋第12章,主要介紹如何基于Spring Boot框架進(jìn)行項(xiàng)目開發(fā)和接口測試,其中重點(diǎn)介紹需求分析、框架設(shè)計(jì)、項(xiàng)目模塊構(gòu)建及項(xiàng)目落地的相關(guān)內(nèi)容。
《Spring Boot整合開發(fā)實(shí)戰(zhàn)》讀者對(duì)象
有Java基礎(chǔ)的Spring Boot初學(xué)者;
Spring Boot進(jìn)階開發(fā)人員;
Spring Boot框架愛好者;
Spring系列框架愛好者;
Java Web開發(fā)人員;
微服務(wù)開發(fā)人員;
對(duì)源碼分析感興趣的技術(shù)人員;
Java應(yīng)用開發(fā)培訓(xùn)學(xué)員。
配書資源獲取方式
《Spring Boot整合開發(fā)實(shí)戰(zhàn)》涉及的所有源代碼需要讀者自行下載。請(qǐng)?jiān)谌A章公司的網(wǎng)站(www.hzbook.com)上搜索到本書,然后單擊資料下載按鈕,即可在本書頁面上找到下載鏈接。
售后支持
讀者閱讀本書時(shí)若有疑問,可以發(fā)電子郵件到hzbook2017@163.com獲得幫助。另外,書中若有疏漏和不當(dāng)之處,也請(qǐng)讀者及時(shí)反饋,以便后期修訂。
莫海
……
第1篇 Spring Boot開發(fā)基礎(chǔ)
第1章 初識(shí)Spring Boot 2
1.1 Spring Boot簡介 2
1.2 Spring Boot項(xiàng)目構(gòu)建 3
1.2.1 開發(fā)環(huán)境準(zhǔn)備 3
1.2.2 開發(fā)工具準(zhǔn)備 9
1.2.3 項(xiàng)目創(chuàng)建 13
1.2.4 項(xiàng)目啟動(dòng)方式 19
1.3 Spring Boot項(xiàng)目發(fā)布 21
1.3.1 打包部署 21
1.3.2 基于Docker的簡單部署 23
1.4 小結(jié) 26
第2章 Spring Boot基礎(chǔ)知識(shí) 27
2.1 Spring Boot啟動(dòng)原理 27
2.1.1 SpringApplication啟動(dòng)探索 27
2.1.2 注解@SpringBootApplication詳解 30
2.1.3 注解@EnableAutoConfiguration詳解 43
2.1.4 注解@Configuration與@Component對(duì)比 51
2.2 Spring Boot基礎(chǔ)配置 53
2.2.1 Spring Boot配置文件加載機(jī)制 53
2.2.2 Properties配置文件詳解 56
2.2.3 YAML配置文件詳解 59
2.2.4 Spring Profiles使用說明 60
2.3 自定義Banner 63
2.4 內(nèi)嵌式Web容器 66
2.4.1 Tomcat的配置 67
2.4.2 Undertow的配置 69
2.4.3 Jetty的配置 71
2.5 視圖層技術(shù) 73
2.5.1 集成Thymeleaf模板引擎 73
2.5.2 集成Freemarker模板引擎 76
2.5.3 集成Velocity模板引擎 78
2.6 小結(jié) 80
第2篇 第三方組件集成
第3章 Spring Boot整合Web開發(fā) 82
3.1 Spring Boot自動(dòng)配置Web 82
3.2 配置JSON和XML數(shù)據(jù)轉(zhuǎn)換 84
3.2.1 默認(rèn)轉(zhuǎn)換器 85
3.2.2 自定義轉(zhuǎn)換器 93
3.3 配置Servlet、Filter和Listener 96
3.4 配置攔截器 104
3.5 配置AOP 108
3.6 全局異常處理 114
3.6.1 自定義錯(cuò)誤頁 114
3.6.2 自定義異常返回 119
3.7 靜態(tài)資源訪問 121
3.7.1 默認(rèn)靜態(tài)資源訪問 121
3.7.2 自定義靜態(tài)資源訪問 123
3.8 配置CORS實(shí)現(xiàn)跨域 124
3.9 配置文件上傳 127
3.10 配置啟動(dòng)加載項(xiàng) 130
3.10.1 CommandLineRunner接口詳解 132
3.10.2 ApplicationRunner接口詳解 133
3.11 配置日志 134
3.11.1 Log4j 2配置 134
3.11.2 Logback配置 135
3.12 小結(jié) 138
第4章 Spring Boot整合持久層技術(shù) 139
4.1 默認(rèn)連接池HikariCP 139
4.2 配置Druid連接池 146
4.3 配置MyBatis框架 149
4.3.1 基礎(chǔ)配置 149
4.3.2 自定義插件 155
4.3.3 應(yīng)用案例 161
4.4 配置使用Spring Data JDBC 166
4.4.1 基礎(chǔ)配置 166
4.4.2 應(yīng)用案例 168
4.5 配置使用Spring Data JPA 171
4.5.1 基礎(chǔ)配置 171
4.5.2 應(yīng)用案例 176
4.6 事務(wù)管理配置 179
4.7 多數(shù)據(jù)源配置 184
4.8 小結(jié) 187
第5章 Spring Boot構(gòu)建RESTful風(fēng)格 188
5.1 RESTful簡介 188
5.2 Spring Data REST實(shí)現(xiàn)REST服務(wù) 189
5.3 Swagger生成API文檔工具 194
5.4 小結(jié) 198
第6章 Spring Boot整合NoSQL 199
6.1 NoSQL簡介 199
6.2 集成Redis數(shù)據(jù)庫 200
6.2.1 Redis簡介 200
6.2.2 Redis應(yīng)用案例 201
6.2.3 Redis集群 222
6.3 集成MongoDB數(shù)據(jù)庫 225
6.3.1 MongoDB簡介 226
6.3.2 MongoDB應(yīng)用案例 227
6.4 小結(jié) 232
第7章 Spring Boot整合Cache緩存 233
7.1 Spring Boot的緩存支持 233
7.1.1 注解@EnableCaching開啟聲明式緩存 233
7.1.2 默認(rèn)的ConcurrentMapCacheManager緩存管理器 242
7.2 EhCache緩存技術(shù) 245
7.2.1 EhCacheCacheManager緩存配置 245
7.2.2 EhCache的集群模式 248
7.3 Redis緩存技術(shù) 250
7.3.1 RedisCacheManager緩存配置 250
7.3.2 Redis緩存管理 254
7.4 小結(jié) 255
第8章 Spring Security安全管理 256
8.1 Spring Security基本配置 256
8.1.1 用戶認(rèn)證 256
8.1.2 基于內(nèi)存的認(rèn)證 263
8.1.3 基于數(shù)據(jù)庫的認(rèn)證 266
8.1.4 用戶授權(quán) 274
8.2 Spring Security高級(jí)配置 288
8.2.1 角色繼承 288
8.2.2 動(dòng)態(tài)權(quán)限 295
8.3 Spring Security OAuth 2.0簡介 298
8.3.1 OAuth 2.0角色 299
8.3.2 OAuth 2.0授權(quán)流程 300
8.4 JWT簡介 314
8.5 小結(jié) 315
第9章 Spring Boot整合消息服務(wù) 316
9.1 消息隊(duì)列 316
9.2 消息中間件之RabbitMQ 317
9.2.1 RabbitMQ的基本概念 317
9.2.2 RabbitMQ自動(dòng)配置 322
9.2.3 RabbitMQ應(yīng)用案例 328
9.3 消息中間件之ActiveMQ 331
9.3.1 ActiveMQ的基本概念 331
9.3.2 ActiveMQ自動(dòng)配置 334
9.3.3 ActiveMQ應(yīng)用案例 338
9.4 消息中間件之Kafka 341
9.4.1 Kafka的基本概念 341
9.4.2 Kafka自動(dòng)配置 343
9.4.3 Kafka應(yīng)用案例 350
9.5 消息中間件之RocketMQ 360
9.5.1 RocketMQ的基本概念 360
9.5.2 RocketMQ自動(dòng)配置 363
9.5.3 RocketMQ應(yīng)用案例 372
9.6 小結(jié) 378
第10章 Spring Boot整合批處理 379
10.1 Spring Batch簡介 379
10.2 Spring Batch的核心架構(gòu) 380
10.3 Spring Batch基礎(chǔ)配置 389
10.4 Spring Batch應(yīng)用案例 393
10.5 小結(jié) 399
第11章 Spring Boot整合定時(shí)任務(wù) 400
11.1 Spring Boot默認(rèn)的定時(shí)任務(wù) 400
11.1.1 注解@EnableScheduling:定時(shí)任務(wù)總開關(guān) 400
11.1.2 注解@Scheduled和@Schedules詳解 414
11.2 Spring Boot集成JDK定時(shí)任務(wù) 419
11.2.1 Timer方式 420
11.2.2 ScheduledExecutorService方式 427
11.3 Spring Boot集成Quartz任務(wù)調(diào)度 434
11.3.1 Quartz簡介 434
11.3.2 定義Quartz的Job 435
11.3.3 Quartz使用Cron表達(dá)式 445
11.3.4 消息定點(diǎn)推送案例 447
11.4 小結(jié) 453
第3篇 項(xiàng)目案例實(shí)戰(zhàn)
第12章 Spring Boot開發(fā)案例 456
12.1 網(wǎng)上商城項(xiàng)目 456
12.1.1 架構(gòu)設(shè)計(jì) 456
12.1.2 項(xiàng)目搭建 458
12.1.3 模塊實(shí)現(xiàn) 498
12.2 小結(jié) 512
……