WebFlux 系列教程大綱
一、背景
大家都知道,Spring Framework 是 Java/Spring 應(yīng)用程序跨平臺(tái)開發(fā)框架,也是 Java EE(Java Enterprise Edition) 輕量級(jí)框架,其 Spring 平臺(tái)為 Java 開發(fā)者提供了全面的基礎(chǔ)設(shè)施支持。 雖然 Spring 基礎(chǔ)組件的代碼是輕量級(jí),但其配置依舊是重量級(jí)的。
那是怎么解決了呢?當(dāng)然是 Spring Boot,Spring Boot 提供了新的編程模式,讓開發(fā) Spring 應(yīng)用變得更加簡單方便。本書將會(huì)由各個(gè)最佳實(shí)踐工程出發(fā),涉及 Spring Boot 開發(fā)相關(guān)的各方面。下面先了解下 Spring Boot 框架。
二、Spring Boot 是什么
Spring Boot (Boot 顧名思義,是引導(dǎo)的意思)框架是用于簡化 Spring 應(yīng)用從搭建到開發(fā)的過程。應(yīng)用開箱即用,只要通過一個(gè)指令,包括命令行 java -jar 、SpringApplication 應(yīng)用啟動(dòng)類 、 Spring Boot Maven 插件等,就可以啟動(dòng)應(yīng)用了。另外,Spring Boot 強(qiáng)調(diào)只需要很少的配置文件,所以在開發(fā)生產(chǎn)級(jí) Spring 應(yīng)用中,讓開發(fā)變得更加高效和簡易。目前,Spring Boot 版本是 2.x 版本。
三、Spring Boot WebFlux 是什么
可以看到上面的圖,WebFlux 相對(duì) MVC 一樣重要。大多數(shù)場(chǎng)景使用 MVC 都是阻塞式的,WebFlux 使用的場(chǎng)景是異步非阻塞的。那什么是響應(yīng)式編程(Reactive Programming)?
官方文檔這樣描述:響應(yīng)式編程是基于異步和事件驅(qū)動(dòng)的非阻塞程序,只是垂直通過在 JVM 內(nèi)啟動(dòng)少量線程擴(kuò)展,而不是水平通過集群擴(kuò)展。
Spring Boot 2.0 包括一個(gè)新的 spring-webflux 模塊。該模塊包含對(duì)響應(yīng)式 HTTP 和 WebSocket 客戶端的支持,以及對(duì) REST,HTML 和 WebSocket 交互等程序的支持。
四、為什么學(xué)習(xí) Spring Boot WebFlux
- 微服務(wù)架構(gòu)越來越火,Spring Boot 是一大趨勢(shì),因?yàn)?Spring Cloud 是基于 Spring Boot 的。所以學(xué)好 Spring Boot WebFlux 會(huì)受益匪淺。
- 從編程來講,雖然阻塞式編程是避免不了的,但是 Reactive 編程在大多數(shù)場(chǎng)景,能夠提高資源利用率。所以,學(xué)習(xí) WebFlux ,尤其某些 IO 密集型場(chǎng)景很剛需。
五、本系列教程可以學(xué)到什么
本課程是一個(gè)系列基礎(chǔ)教程,目標(biāo)是帶領(lǐng)讀者上手實(shí)戰(zhàn),課程以新版本 Spring Boot 2.0 WebFlux 的核心概念作為主線。圍繞 Spring Boot 2.0 WebFlux 技術(shù)棧的系列教程,目標(biāo)是帶領(lǐng)讀者了解 Spring Boot 2.0 WebFlux 各種特性,并學(xué)會(huì)使用 Spring Boot 相關(guān)技術(shù)棧上手開發(fā)項(xiàng)目。尤其對(duì)于微服務(wù)下,如果是 IO 密集型等場(chǎng)景,可以考慮使用 WebFlux 去實(shí)現(xiàn)。
主要包含知識(shí)點(diǎn):快速入門、CRUD 、Mongodb Reactive、Thymeleaf、Redis、WebSocket 等,一步一步了解每個(gè)組件的使用方式,最后綜合演練。
認(rèn)真學(xué)完這個(gè)系列文章之后,會(huì)對(duì) Spring Boot 2.0 WebFlux 有進(jìn)一步的了解,具備使用 Spring Boot 2.0 WebFlux 上手進(jìn)行開發(fā)的基本能力。
我早期寫的文章可以看我的 GitHub:github.com/JeffLi1993
六、適合閱讀的人群
本 GitChat 課程適合以下人群閱讀:
- Spring Boot 2.0 WebFlux 新版本的初學(xué)人員
- 對(duì) Spring Boot 2.0 WebFlux 開發(fā)感興趣的開發(fā)人員
- 希望了解 Spring Boot 2.0 WebFlux 的研發(fā)人員
版本使用 Spring Boot 2.0.1.RELEASE 版本進(jìn)行開發(fā)演示,技術(shù)人員需要具備 Maven、Git 基本技能。
開發(fā)運(yùn)行環(huán)境:
JDK 1.8+ Spring Boot 2.x 要求 JDK 1.8 環(huán)境及以上版本。另外,Spring Boot 2.x 只兼容 Spring Framework 5.0 及以上版本。
Maven 3.2+ 為 Spring Boot 2.x 提供了相關(guān)依賴構(gòu)建工具是 Maven,版本需要 3.2 及以上版本。使用 Gradle 則需要 1.12 及以上版本。Maven 和 Gradle 大家各自挑選下喜歡的就好。
IntelliJ IDEA IntelliJ IDEA (簡稱 IDEA)是常用的開發(fā)工具,也是本書推薦使用的。同樣使用 Eclipse IDE 自然也是可以的。
開發(fā)使用框架:
- Mongodb
- Redis
- Thymeleaf
- WebSocket
七、系列教程目錄
- 《01:WebFlux 系列教程大綱》
- 《02:WebFlux 快速入門實(shí)踐》
- 《03:WebFlux Web CRUD 實(shí)踐》
- 《04:WebFlux 整合 Mongodb》
- 《05:WebFlux 整合 Thymeleaf》
- 《06:WebFlux 中 Thymeleaf 和 Mongodb 實(shí)踐》
- 《07:WebFlux 整合 Redis》
- 《08:WebFlux 中 Redis 實(shí)現(xiàn)緩存》
- 《09:WebFlux 中 WebSocket 實(shí)現(xiàn)通信》
- 《10:WebFlux 集成測(cè)試及部署》
- 《11:WebFlux 實(shí)戰(zhàn)圖書管理系統(tǒng)》