00:01
各位大家好,下面呢,我们继续来学习四框架,咱们继续来研究润五框架中的新功能。在之前呢,咱把里边的其他新功能应该都做了说明,然后咱们下面看一下它的另外一个新的功能,就是这个东西叫spring web flagx,那spring web flagx是在SPRING5这个框架中出现了一个新的模块,它是用于我们进行web开发的一个模块,那这个模块咱先看一下此文五框架,这个就是它这个模块图,在图上清晰的标注的有它的核心部分,有a op,有数据库操作部分,比如咱们之前学的GDBC,他里头,然后它还有外部部分。在外部部分中呢,有比较常见的里边的MVC,包括有个新的模块就叫web flagx,所以咱们现在要学的是词文五里边出现一个新的模块叫spring web flux,那我下面就把这部分给各位做一个详细的说明,咱会从几个方面给各位做个介绍,我在里边给各位来说一下。
01:15
首先第一部分呢,会给大家介绍一下,就是关于这个。Web flagx,它里面一些基本的一些介绍,就是这个东西到底是什么,它能做什么事情,以及它有什么特点,这个位会做个说明,然后这个说完之后,第二部分给大家会讲解,在web中一个很重要的概念叫做响应式编程。那这个到底是什么,给各位一会会做个说明,咱会通过我们Java怎么实现,包括基于react怎么实现,给各位做一个详细讲解,因为咱们要学到web flagx,它就基于reactor里边的API实验的讲式编程,这一会具体说,然后这个说完之后,第三部分给大家会讲解,这关于就是web flagx。
02:12
它里边一些原理,或者说它的执行流程,以及它核心的这些API,因为咱们要用到这个核心派后面实现我们的具体功能,这是我们的第三部分,然后第三部分说完之后,我们的后面两部分给大家会讲解到关于这个在这个我们文里边如何来进行weblo里边的具体实现,咱会通过两种方式做到,给各位我先列出来,第一种方式就是关于spring。Web flas,我们要基于注解的编程模型进行实现。然后第二种方式我们是基于注意啊,基于不是配置文件,是基于叫函数式编程的模型进行实现,所以咱们在这个spring web中主要讲解这么几个内容。
03:11
然后关于这个函数式编程,比如我都会继体来说,这个啊是我们要讲的内容,就是第一部分介绍它的基本概念,包括它有什么特点,它能做什么事情,第二部分给大家介绍想是编程中的特点,包括Java中什么实现,Reactor怎么做到,第三部分讲解web flag,它的执行流程以及核心态,然后第四部分,第五部分咱们就通过spring基于注解编程模型,还有函数式编程模型来实现weblo中的具体操作,这个啊是我们要讲的这么一个新的功能的这么一个介绍,它叫做web。Flags,各位把它要记住。然后这里边我特别强调一点啊,就是我们现在一会儿要演示web flag的时候呢,希望各位要掌握几个前置的知识,就这些知识至少你要掌握,那有哪几个知识给各位列出来。首先第一个知识就是词瑞LVC,因为咱们用的外部方法里边的很多操作跟死亡VC基本上是差不多的,包括它的执行流程跟这个基本上也是类似的,这个我要掌握。
04:26
然后第二部分我们要各位掌握这么一个知识,就是我们比较熟悉的叫three BOO,因为各位知道咱们现在用的所版本是不是五的版本呀,而我们现在在企业开发中一般很少使用原生的使用操作,基本上都是基于使用boot进行项目的构建,因于BOO可以快速构建我们的这种项目,简化很多配置本质上就是任,所以咱们项目演示过程中给各位也是基于STEM部把这个做到。然后第三部分也是一个基础知识,就是我们比较常见的微问,咱们项目都是基于微问构建,咱就不用原始方式再去导炸包的,然后除了这个之外,还有最后一个技术知识各位掌握,就是关于我们JAVA8中的一些相关的新特性,比如说各位比较熟知的拉姆的表达式stream流,因为咱一会儿讲到这个函式编程运用到里边的啊表式,包括咱讲到里边这个想是编程的操作也要基于里边这个,就说流,因为跟它的原理是差不多的,所以这几部分也要各位要给他知道,而这几部分各位可以关注我们上归谷鼓励学院中都有用的视频,各位可以把这知识做个相学讲解,咱们项目中有基于这种技术,把这些做个演示,然后咱们的重点肯定是在我们这个web。
05:52
Flag,咱重点演示web flag中的基本操作,但是要基于里边这些前置知识,所以如果说对这几个前置知识还不是很熟悉的同学关注,鼓励学院把这几个部分内容给他好好去看一看,为了更好理解我们的web flex。
06:12
这个啊,是我做一个说明,然后这些呢,都说完之后,咱们下面就来先看一下spring web法中的第一个内容,就关于它的介绍,那这个介绍呢,咱们首先先打开spring里边的官网,在官网中找到这个叫spring frame work,然后下面有个地方,这个地方叫spring web flags,咱把它打开,这是它的官方文档,里边有针对weblo中的详细介绍,那我下面给各位对它做一个详细的说明,就来介绍一下这we flas到底是什么。包括他能做什么事情,那我来给大家写一下啊。首先第一句话要各位记住这spring web flags,它是。
07:04
SPRING5这个版本的框架添加的一个新的一个模块,它是用于我们进行web开发的,它的功能和我们之前使用那个就是spring mvc是类似的,但是它的底层会有很大的区别,后面咱们都会说到,而这个叫web flags。给大家强调,其实它是使用了我们当前一种比较流行的一种方式,叫做响应式。编程而出现的这么一个框架,这个啊,是我们给各位做的一个。总体上一个概括,我把这句话给各位再说一遍啊。Spring web flex是五添加的一个新的模块,就是在之前没这个东西,而它用于是web开发的,它的功能和SYVC是类似的,但是它的底层会有很大区别。另外web flex使用当前一种比较流行的想式编程,因为它而出现一个框架,这个啊是我们做的一个总体上的一个概括。
08:21
然后这个说完之后,咱们继续往下来看,然后往下看啊,就是里边针对有些内容,这里边虽然是英文,但是里边有几个词各位应该能看到,大家看到啊,外文VC包有一个叫3.1,还有一个叫react,所以咱下面把这几个给各位说一下。然后说一下这些什么意思,另外还有一个叫no blocking,它叫异步非阻塞这么一种方式,那各位做说明,咱看第二句话关于它的一个介绍。这里给大家说一下,大家知道比如我们现在咱们使用那些就是传统的web框架,比如说大家比较熟悉的threat lvc,包括什么r two等等,他们这些呢都是基于什么?就是我们的这个serve light这个容器在serve容器基础之上进行运行的,而我们现在要用的这个叫web flags。
09:26
给各位说明这web flag呢,它是一种叫做什么叫做异步。非阻塞的这么一种框架,而这种异步非阻塞的方式,如果说你要用到serve的容器,它是在这个叫做3.1以后才支持的,因为在之前版本中这种效果它是。不支持的,所以咱们现在用这个外flagx这种比较新的内容,包括各位看到工行描述这里也写到了,就是我说的这句话,你看啊,S3.1才知识里边这种叫异不非阻塞的这种方式,这个啊我们做一个说明,而咱们继续来看啊,这里提到。
10:14
Web flagx呢是一种叫异步非阻塞的框架,而异步非阻塞是在3.1以后才支持的。当然web flags本质上并不是基于supply的这种容器运营的,而它的核心是什么呢?给大家写一下,它是基于这个叫reive的相关API进行实现,或者说reor的API进实现。它的相关API进行实现的,而这个reactor是什么意思呢?就是它是reactive中的一种,具体的一种框架,Reactive就叫做响应式编程,这一想是编程什么意思,因为各位会详细介绍,各位先对这个就是whilelos有一个总体上一个认识。
11:08
这个啊是我们说的第二句话,而这里啊,咱还是看一下官行文档在这里写到说我们这个就是web flag呢,它相对于传统框架,它既可以支持我们的三一容器,就是它可以在或者说我们的comp容器中进行运行,另外还支持其他的容器,比如这个net等等,同时它相对于传统框架相比,它可以说比传统框架。支持的容器更加丰富,功能更加强大,所以我们现在学的就是whileflex,它叫rere s,是一个响应式编程的这么一种方式。这个啊,是我们做的一个总体上一个概括,各位对它像一个总体认识,但是这里边呢,提到了很多术语,各位可能还不是很清晰,我下面给各位做一个详细的介绍,咱们继续往下来看。
12:07
这个图我先拿到上面,因为它是此润五里边一个新的模块,然后下面咱说什么,我写一下啊,刚才我一直提一个词叫做非阻塞,是或者说异部的非阻塞,那下面就把这个给大家解释一下。就是我解释一下。什么是异步?非阻塞,这个我来做个说明,就是这个东西啊,如果咱们猛然一看,可能觉得这个词啊很好理解,里面又涉及到什么异补,又涉及到非阻塞,所以咱们现在我觉得理解一个东西啊,咱可以从不同的层面去理解,如果说有时候比如你直接看它的概念,那这东西并不好理解,所以下面咱就来讲解一下这异步非阻塞该怎么理解。给各位强调啊,就是这里边,如果咱要理解这个词的话,很简单,里边一个词是不是叫异步,有异补就有什么是不是有同步。
13:07
然后这里边有一个叫非阻塞,有非阻塞就什么是不是有阻塞,所以这里边啊,咱就理解异步和恐怖阻塞和非阻塞,那怎么理解,注意啊,其实这个不管你是异步同步还是阻塞,非阻塞,它们的区别是什么?就是我们针对的对象不一样。写一下啊,就是上面他们都是针对的这个对象不一样,那什么意思,给各位来说一下啊,首先咱先看这个同步和异步,说一下这个怎么理解。我来写一下啊,就是同步和异步啊,其实它针对的什么,这个调用者来说的,它是针对我们的。调用者,比如说我现在我调用者去发送一个请求,注意啊,比如我现再发一个请求,我是不是叫调用者,那什么叫同步,当我发送请之后,一直等着对方有反馈之后,我才做其他事情,这叫什么?就叫同步,而什么叫异步,当我发生请求之后,我不管对方有没有回应,我都去做其他事情,这叫什么,就叫异补,所以同步异补它针对时调用者给大家写一下,当我们的调用者。
14:28
发送。这么一个请求,如果说对方啊,就是如果说我们现在要等着对方。回应之后才去做其他的事情,那这个就是什么,是不是就叫同步,这是一个,但是这里边就是如果说我们发送请求之后。不等着对方回应。
15:01
而就去做其他的。这么一个事情。那这个就是什么,是不是就是异步,所以这个啊,就是关于同步和异步理解,不知各位是否能从这个层面去理解,因为我觉得这个层面是更好理解的。同步异步针对是调用者,我调用者发个请求,对方有回应,我才做其他的事情,叫同步,不管对方有没有回应,我都去做其他事情,只要发了请求,我就去做其他事情,这就叫什么,就叫异步,所以这个啊是咱们针对同步和异步的理解,各位把律知道。然后除了这个之外,咱们还有两个,一个叫阻侧,一个叫非阻塞,那我来做个说明。阻塞和。非阻塞,而他们是针对谁?就是你的这个被调用者而言。被调用者,比如我A去调用,BA是调用者,B是不是就是被调用者,那这个什么意思?给各位说一下啊,假如现在我这个被调用者,就是这个被调用者收到一个请求,而我做完启用任务之后不给做出反馈,那就是阻塞,如果说我收到启用之后直接给他反馈,那就是非阻塞,比如说我得到启用之后,我等着不给他马上回馈,可能我做其他事情,这叫阻塞,而我得到之后直接给他做反馈,那这就叫非阻塞,这就是咱说的。
16:33
阻塞和非阻塞,那我写一下啊,就是这个。被调用者,他收到一个请求之后,那怎么做,如果说他。当他就是说的官方点做完了请求任务之后,那才他才给出这个反馈,那这个就叫。阻塞,我先写完,然后会再解释一遍啊,如果他收到请求之后怎么样就马上。
17:07
就是给对方做出反馈。然后。他再去做那个他的那个事情,那这个过程它就是非阻塞,这个是咱说的阻侧非阻册,就这是调用者,那我举个具体例子啊,比如现在我这个A去想做个这个添加操作,我给B发一个请求,那B收到添加这个操作之后,他马上就去做添加,等他添加做完之后才给反馈,这过程叫什么?就叫阻塞。那什么叫非阻塞?我B收到A的这个请求之后,比如说添加请求,那我怎么做,马上给他回复,我添加已经做完了,然后发完返回之后,我现在再去做这个添加操作,这个过程就叫非阻塞,就是说的通俗点阻塞需要等待。
18:05
非阻塞就是不需要等待,你可以这么来理解,这是咱们说的两个概念,异步非阻塞,各位可以从他们这个就是针对的对象层面去理解这个啊,我们做了这么一个说明。然后这个过程呢,如果各位还不理解,给各位我可以再举个例子啊,这例子是一个比较常见的例子。我觉得各位同学应该咱们都坐过这个就是公交车吧,各位应该都坐过,或者你在公交车站,咱是不是就要去等公交,这过程就是一个很好的这个异步非阻塞这过程,那我说一下什么意思啊,首先咱看同步异步对于吊着而言,是不是叫同异步,那咱乘客是不是就是调用者,比如我现在我去等公交车,我一直等着公交车来。但是公交车目前没有来,我是不是一直等,在等的过程中我不做其他事情,这叫什么?就叫同步,那什么叫异步?比如现在我看着公交车的方向,这时候公交车没有来,那我怎么做?我可以听着广播,包括拿出笔记本我去改bug,或者说我这里边在公交站我跳个舞,这过程叫什么?就叫异步,就是针对调着而言,同步,异步。
19:23
同步就驶,一直等着,然后不去做其他的事情,异步就驶,我这过程中也等,但是我同时也去做其他事情,这叫异步,然后阻塞。非阻塞跟他类似,比如现在对于公交系统而言,它是不是就是被调者,因为我要去坐公交车嘛,比如现在这个公交车站有广播,那这里边比如说我现在等着公交车,公交车站也放着广播,那公交车站这广播就叫非阻塞,比如说告诉我车辆在三分钟以后将进站,那我就听这广播,等着他进站,这叫非阻塞。那什么叫阻塞?现在我等公交车,公交车站没有广播,这时候我就干等,知道他来,这过程就叫阻塞。
20:06
这是一个比较典型例子,所以各位可以从我说这个层面去理解一下什么叫异步非阻塞,咱把它做了这么一个说明。这个啊,是我们提到这么一点,所以现在把外f flags给各位做了一个基本的说明。然后这个说完之后,咱们继续往下来看看里边的就是第四句话。也就是说啊,我们现在做web开发在什么里边,咱们肯定是有什么VC,肯定是更加方便,但是它为什么出现一个叫web flagx呢?就是web flagx它到底有什么特点,有什么好处,它跟YVC相比有什么样的区别,所以下面咱根据它针对什么VC来做一个比较,我们来做个说明。就是关于这个web。Flags它有哪些相关的优势,或者说有哪些的特点?首先啊,我写一下它的第一个优势,就咱说到的叫做异补。
21:10
非阻色。这是第一个,然后这里边啊,刚才提到异部非阻塞,它有什么好处呢?给各位来说一下啊。就是web flex呢,其实它内部用的叫什么叫做想式编程,它是以这个叫reri为基础,基于这种异步和实验驱动方式,而它的好处是什么?在我们不扩充硬件资源的条件下,可以提升你系统的吞吐量,还有你的伸缩性,那这句话咱通过它的官方文档可以找一下啊,咱往下看一下,应该在下边有一句话。大家看啊,就是里边的这句话。这虽然是英文,但是咱们也给他大概翻一下这句话的含义啊,其实就是我刚才说的这句话,你看里边几个词,首先大家看第一个词啊,叫lesss memory,是不是就是很少的这种内存或者空间,然后它能实现更大的这种吞吐量,就是它可以在有限的资源下提高系统的吞吐量,还有你的伸缩性说的吞吐点,它可能能够进行处理更多的请求,这个啊就是它的一个最大优势,叫做非阻塞式。
22:26
给各位写一下。就是它可以在我们。就是。有限的。资源下去。提高。你系统的这个叫什么,叫做吞吐量。还有它的叫做伸缩性,也就是说在有限资源下能够处理更多的请求,这是它的一个很大优势,叫做非阻塞,因为非阻色,但也解释到了它有它现在优势。这个啊是我们说的里边的第一个特点,然后它里边是以这个叫rior为基础。
23:10
来实现的,这个叫做响应式的这么一种编程,这个啊第一个特点,然后里边还有第二个特点,这特点我觉得各位很熟悉很熟悉了啊,它叫做什么函数式编程。那函数编程我们应该都有过JAVA8的基础,咱也说到SPRING5,它这框架就是基于JAVA8,所以里边能用到我们JAVA8中的新特性,比如说比较常见的拉表式,而我们在web flag中也能够基于函数编程来定义它路由的请求处理,这咱们后面会写到这个具体例子,首先知道它里面这个特点。我写一下啊,就是我们的SPRING5这个框架就是基于JAVA8的,所以咱们现在在这个web flex里边。
24:02
能够使用JAVA8中的这个就是一些函数式编程的一个特点。编程的一种方式来实现。里面这个叫。路由的这么一个请求,这个怎么写,后面咱会写到,你知道这里面一个特点,因为大家知道函数编程呢,肯定更加简洁,更加方便,这个啊是关于它的一个基本特点,第一个叫非阻塞,第二个叫函数编程,包括它的特点咱也说到了,就是关于用最少的资源能够请求,或者能处理更多的请求,提高系统这个伸缩性,还有它的吞吐量。这个啊特点咱自我介绍,然后介绍之后,咱们最后把这个web flagx和损VC,我们来给它做一个简单的比较啊比较一下。
25:03
我写一下spring mvc,那怎么比较,咱们通过它的官网看一下,里边有张图,就关于它的比较给咱们看到就这张图,那这张图呢,我给各位。截过来,咱通过这个图来比较一下这两个框架,它里面一些基本的特点。那这图咱拿过来,然后大家看啊,通过这个图啊,我们可以发现啊,你看啊,它这图我觉得我们应该能看懂啊,咱在高中应该学一个词叫交集嘛,你看它中间是它两个都可以用的地方,所以我们发现这个不管你是用SVC还是W的web flex,他们都可以使用什么注解方式进我们的操作。或者说他们都可以运用在我们的Tom k中,或者这个消园统计中,包括你的MVC,还有flagx都可以在里边进行运行。这个啊一个特点,但我们发现啊,这里边的虽然VC它采用的方式呢,并不是我们说这个叫想式编程,它一个词叫命令式编程,什么叫命令式,就是里边是一行一行执行的,当然我们的web f flagx,它是基于叫想式编程进行操作的,包里边用了这个nat等等一些网络通讯的框架。
26:21
这个啊,是咱们对他做的一个基本的一个比较,然后这个给各位在里边写下。就是比较,首先第一个就是第一句话。我想这个位置啊。第一句话。啊,咱写下边啊,第一就是我们发现啊,上面这两个框架。他们都可以。使用这个注解方式进行操作,另外他们也都可以运行在我们那个,比如说tomcat等。
27:02
这个容器中,这是一个特点,但是他们肯定是有区别的。咱看第二句话。就是这里边我们发现子YVC,它采用的方式并不是叫小式编程,它叫做命令式。这种。编程方式。什么叫命令式?刚才解释过就是一行一行代码进行执行,就是这么做有它的好处,就是便于我们程序的理解和调试,这么写更加清晰。但是里边这个web f flagx跟它就完全不一样了,Web f flagx采用叫做这个叫异步的响应式的变成方式,而这种方式呢,它本身是基于这个叫reactor这个框架A派进行实现的,包括做到里边相应功的,而这种方式可以说是一种比较新的方式,对于很多习惯我们传统代码编写的开发视频来讲,这种方式应该不太好理解,希望各位花更多时间把这种方式给他理解出来,这个啊是咱们对这两个框架的一个比较。
28:09
各位把这个给他知道啊。然后这个说完之后,咱们继续往下来看啊,就是现在我们发现我们现在有这个怎么VC,还有这个web flux,而这两框架在实际中咱们到底该怎么进行选取,就是实际开发中咱到底要用哪个框架,给各位我来做一个基本说明,其实这些呢,在它官方都有对应的这些说明,就是你到底该用哪个不用哪个,里边都做了介绍,那我下面给各位来说一下啊,我就不在里边写了,因为它官网中全有给各位做一个说明。我这里强调啊,就是我们之前呢,咱肯定都用过什么VC这种框架,我可能学觉得我用的很好,为什么要换成we f flagx,所以我强调啊,这web flex呢,就是它这种方式啊,叫做响应式编程,跟我们之前什么VC里边的做法,它里面很多东西都相似,比如说你现在就把你的MVC项目切换成we plus,它里边的很多注解方式都一样,你切换成本会比较小,而我们现在在实际中,如果说我们一般项目咱用什么VC可以做到,但如果说你项目中用到这种叫远程服务调用,你不妨采用下这个while flex,另外flex它的特点大家看到它是在有限的资源中去处理那些,就是更多的请求,提高你系统这种吞吐量,还有气统的震缩性,所以它一般用在什么地方?
29:43
给各位举个例子,比如大家知道在我们这种微负操作中,一个词叫网关,网关是不是要处理更多的请求,而咱这种微复网关就可以用这种叫做就是非阻塞义务帮做到,而这个welos就是一个很好的场景,给各位啊,简单画一下。
30:04
比如现在我们网关肯定咱们要有很多的请求,这些请求呢,肯定我们都需要请求咱们这个网关啊,当然有更多,那中间这部分就是我们说那个网关,而网关你现在要同时去处理更多的请求,这过程中咱用whileflox,就是这种异步非阻塞编程更加方便,因为它可以在有限的资源中去处理更多的进操作,也就是符合我们web flag这个特点。所以这个啊是关于它的一个基本介绍,但是咱们更多项目就是喜欢VC可以做到,而这个while flex,它是颠覆了之前的很多一种思想,通过想示方式来实现我们这个操作,这个啊是咱们对于web flex一个总体上的一个介绍,就是通过我的介绍,可对这个welllx像一个。基本的一个认识啊,包括更详细内容,各位看下它的官网,我把里边的核心部分给各位应该都做了一个说明。
31:08
这个啊,是咱们说的外来中等第一部分内容,就关于它的一个基本介绍。
我来说两句