Spring Boot 2.x 系列教程:WebFlux 系列教程大纲(一)
WebFlux 系列教程大纲
一、背景
大家都知道,Spring Framework 是 Java/Spring 应用程序跨平台开发框架,也是 Java EE(Java Enterprise Edition) 轻量级框架,其 Spring 平台为 Java 开发者提供了全面的基础设施支持。 虽然 Spring 基础组件的代码是轻量级,但其配置依旧是重量级的。
那是怎么解决了呢?当然是 Spring Boot,Spring Boot 提供了新的编程模式,让开发 Spring 应用变得更加简单方便。本书将会由各个最佳实践工程出发,涉及 Spring Boot 开发相关的各方面。下面先了解下 Spring Boot 框架。
二、Spring Boot 是什么
Spring Boot (Boot 顾名思义,是引导的意思)框架是用于简化 Spring 应用从搭建到开发的过程。应用开箱即用,只要通过一个指令,包括命令行 java -jar 、SpringApplication 应用启动类 、 Spring Boot Maven 插件等,就可以启动应用了。另外,Spring Boot 强调只需要很少的配置文件,所以在开发生产级 Spring 应用中,让开发变得更加高效和简易。目前,Spring Boot 版本是 2.x 版本。
三、Spring Boot WebFlux 是什么
可以看到上面的图,WebFlux 相对 MVC 一样重要。大多数场景使用 MVC 都是阻塞式的,WebFlux 使用的场景是异步非阻塞的。那什么是响应式编程(Reactive Programming)?
官方文档这样描述:响应式编程是基于异步和事件驱动的非阻塞程序,只是垂直通过在 JVM 内启动少量线程扩展,而不是水平通过集群扩展。
Spring Boot 2.0 包括一个新的 spring-webflux 模块。该模块包含对响应式 HTTP 和 WebSocket 客户端的支持,以及对 REST,HTML 和 WebSocket 交互等程序的支持。
四、为什么学习 Spring Boot WebFlux
- 微服务架构越来越火,Spring Boot 是一大趋势,因为 Spring Cloud 是基于 Spring Boot 的。所以学好 Spring Boot WebFlux 会受益匪浅。
 - 从编程来讲,虽然阻塞式编程是避免不了的,但是 Reactive 编程在大多数场景,能够提高资源利用率。所以,学习 WebFlux ,尤其某些 IO 密集型场景很刚需。
 
五、本系列教程可以学到什么
本课程是一个系列基础教程,目标是带领读者上手实战,课程以新版本 Spring Boot 2.0 WebFlux 的核心概念作为主线。围绕 Spring Boot 2.0 WebFlux 技术栈的系列教程,目标是带领读者了解 Spring Boot 2.0 WebFlux 各种特性,并学会使用 Spring Boot 相关技术栈上手开发项目。尤其对于微服务下,如果是 IO 密集型等场景,可以考虑使用 WebFlux 去实现。
主要包含知识点:快速入门、CRUD 、Mongodb Reactive、Thymeleaf、Redis、WebSocket 等,一步一步了解每个组件的使用方式,最后综合演练。
认真学完这个系列文章之后,会对 Spring Boot 2.0 WebFlux 有进一步的了解,具备使用 Spring Boot 2.0 WebFlux 上手进行开发的基本能力。
我早期写的文章可以看我的 GitHub:github.com/JeffLi1993
六、适合阅读的人群
适合以下人群阅读:
- Spring Boot 2.0 WebFlux 新版本的初学人员
 - 对 Spring Boot 2.0 WebFlux 开发感兴趣的开发人员
 - 希望了解 Spring Boot 2.0 WebFlux 的研发人员
 
版本使用 Spring Boot 2.0.1.RELEASE 版本进行开发演示,技术人员需要具备 Maven、Git 基本技能。
开发运行环境:
- JDK 1.8+ Spring Boot 2.x 要求 JDK 1.8 环境及以上版本。另外,Spring Boot 2.x 只兼容 Spring Framework 5.0 及以上版本。
 Maven 3.2+ 为 Spring Boot 2.x 提供了相关依赖构建工具是 Maven,版本需要 3.2 及以上版本。使用 Gradle 则需要 1.12 及以上版本。Maven 和 Gradle 大家各自挑选下喜欢的就好。
IntelliJ IDEA IntelliJ IDEA (简称 IDEA)是常用的开发工具,也是本书推荐使用的。同样使用 Eclipse IDE 自然也是可以的。
开发使用框架:
- Mongodb
 - Redis
 - Thymeleaf
 - WebSocket
 
七、系列教程目录
- 《01:WebFlux 系列教程大纲》
 - 《02:WebFlux 快速入门实践》
 - 《03:WebFlux Web CRUD 实践》
 - 《04:WebFlux 整合 Mongodb》
 - 《05:WebFlux 整合 Thymeleaf》
 - 《06:WebFlux 中 Thymeleaf 和 Mongodb 实践》
 - 《07:WebFlux 整合 Redis》
 - 《08:WebFlux 中 Redis 实现缓存》
 - 《09:WebFlux 中 WebSocket 实现通信》
 - 《10:WebFlux 集成测试及部署》
 - 《11:WebFlux 实战图书管理系统》
 
 (关注微信公众号,领取 Java 精选干货学习资料)
(添加我微信:bysocket01。加入纯技术交流群,成长技术)
Spring Boot 2.x 系列教程:WebFlux 系列教程大纲(一)的更多相关文章
- spring boot 集成mybatis plus 含分页 完整教程
		
一.添加依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus ...
 - Spring Boot Admin 2.1.4最新实战教程
		
环境的搭建 首先搭建eruka的注册中心 pom.xml <?xml version="1.0" encoding="UTF-8"?> <pr ...
 - Spring Boot入门系列(八)整合定时任务Task,一秒搞定定时任务
		
前面介绍了Spring Boot 中的整合Redis缓存已经如何实现数据缓存功能.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/categ ...
 - 《Spring Boot 入门及前后端分离项目实践》系列介绍
		
课程计划 课程地址点这里 本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发 ...
 - spring boot入门教程——Spring Boot快速入门指南
		
Spring Boot已成为当今最流行的微服务开发框架,本文是如何使用Spring Boot快速开始Web微服务开发的指南,我们将使创建一个可运行的包含内嵌Web容器(默认使用的是Tomcat)的可运 ...
 - spring boot 配置文件
		
spring boot使用一个全局配置文件:主要是以下两种类型 application.properties :例:server.port=9998 application.yml(YAML) : ...
 - spring boot实战(第一篇)第一个案例
		
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] spring boot实战(第一篇)第一个案例 前言 写在前面的话 一直想将spring boot相关内容写成一个系列的 ...
 - Spring Boot 项目学习 (一) 项目搭建
		
0 引言 本文主要记录借用Idea 开发环境下,搭建 Spring Boot 项目框架的过程. 1 系列文档目录 Spring Boot 项目学习 (一) 项目搭建 Spring Boot 项目学习 ...
 - Spring Boot 启动原理分析
		
https://yq.aliyun.com/articles/6056 转 在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启 ...
 - Spring Boot 1.5.x 基础学习示例
		
一.为啥要学Spring Boot? 今年从原来.Net Team“被”转到了Java Team开始了微服务开发的工作,接触了Spring Boot这个新瓶装旧酒的技术,也初步了解了微服务架构.Spr ...
 
随机推荐
- 【BZOJ 2744】【HEOI2012】朋友圈
			
题目链接: TP 题解: 对于A国,我们发现,最大团一定不大于2.对于B国,发现同奇偶性点之间都有边,不同奇偶性之间可能有边,也就是说对于B国是一个二分图最大团,也就是求B国补图的二分图最大独立集.然 ...
 - BZOJ_2001_[BeiJing2006]狼抓兔子_最小割转对偶图
			
BZOJ_2001_[BeiJing2006]狼抓兔子 题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 分析:思路同NOI2010海拔. ...
 - 【转】AB实验设计思路及实验落地
			
这篇文章会讨论: 在什么情况下需要做 AB 实验 从产品/交互角度,如何设计一个实验 前端工程师如何打点 如何统计数据,并保证数据准确可信 如何分析实验数据,有哪些数据需要重点关注 附:如何搭建前端实 ...
 - Spark学习之Spark SQL
			
一.简介 Spark SQL 提供了以下三大功能. (1) Spark SQL 可以从各种结构化数据源(例如 JSON.Hive.Parquet 等)中读取数据. (2) Spark SQL 不仅支持 ...
 - 3.python词云图的生成
			
安装库 pip install jieba wordcloud matplotlib 准备 txt文本 字体(simhei.ttf) 词云背景图片 代码 import matplotlib.pyplo ...
 - 一段简单的显示当前页面FPS的代码
			
写前端代码,尤其是做一个前端框架的时候,经常需要及时知道代码的大致性能,这时候如果能有个好的办法能一直看到当前页面的fps就好了. 整体思路是一秒有一千毫秒,先记录当前时间作为最后一次记录fps的时间 ...
 - (leetcode:选择不相邻元素,求和最大问题):打家劫舍(DP:198/213/337)
			
题型:从数组中选择不相邻元素,求和最大 (1)对于数组中的每个元素,都存在两种可能性:(1)选择(2)不选择,所以对于这类问题,暴力方法(递归思路)的时间复杂度为:O(2^n): (2)递归思路中往往 ...
 - 跟踪测试 DbContext ,向"不是真正的 ORM" 说拜拜
			
FreeSql 发展到现在,已经有两种稳定的开发模式,以下先简单带过一下.后面才是本文的主题. 方法一:基于 helper 的方式,祼用: dotnet add package FreeSql 提供 ...
 - WebGL three.js学习笔记 创建three.js代码的基本框架
			
WebGL学习----Three.js学习笔记(1) webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的 ...
 - Eclipse4JavaEE安装SpringBoot
			
第一步:下载SpringBoot SpringBoot官网下载链接 第二步:在Eclipse里进行安装 打开Eclipse,菜单栏Help ->Install New Software,进入下图 ...