Java响应式框架-Spring WebFlux介绍
ccwgpt 2024-10-11 11:15 57 浏览 0 评论
Spring WebFlux开门迎客,却来了一位特殊客人
话说Spring WebFlux已经出现有一段时间了,但是知道他的人并不是很多。这让他很是闷闷不乐。
还有更惨的是,那些敢于吃螃蟹的人在尝试了他之后,有的竟把代码重新改回到Spring MVC的同步模式。
Spring WebFlux一方面反思自己,一方面决定化身为一家西餐厅,慢慢向周边老百姓推销自己。
风声传到了Spring MVC耳朵里,他决定前去试探一番,看看这个同父异母的兄弟和自己到底有什么不同。
被人嘲笑
为了不让人认出他,MVC乔装打扮一番,就出门了。
大老远就看到那家西餐厅别具一格,略显高档。到跟前一看,果然窗明几净,门头上赫然醒目地写着WebFlux几个大字。
MVC推门而入,确实有些冷清,于是就自己找个地儿坐下来,心不在焉的翻翻菜单。
此时过来一个人,看样子像个小领导。“先生,请问您要点些什么”,这人问道。MVC心想,这西餐厅就是讲究,连用语都这么规范。不像我们MVC那里,都土得掉渣,上来就是嚷嚷。
“来份花生米,一瓶啤酒”,MVC习惯性地答道。只见这位小领导强咬着牙,憋住不笑,但眼睛里却射出鄙夷的目光。
MVC心想这个小领导一定在嘲笑自己,觉得MVC的人天天写同步代码,Low逼的要命,现在来到了NB的响应式web世界里,居然连个菜都点不好。
不过,这个小领导还是很绅士地道,“不好意思,先生,我们这是西餐厅,暂时不提供您要的东西”。MVC看到这个小领导身上别着一个工作牌,上面写着,职位:大堂经理,姓名:DispatcherHandler。
MVC以前听别人说过,西餐厅都是卖牛排的。于是道,“给我来个牛排吧,再来一杯红酒”。
大堂经理本来想问他要什么种类的牛排,什么牌子的红酒。话到嘴边又被咽了回去。问一个土老帽这问题,简直就是对牛弹琴啊。但是表情动作都已到位,总不能再收回去吧。
就问道,“牛排您要几分熟”。MVC道,“牛排共有几面”。大堂经理道,“2面”。MVC道,“一面八分熟,一面九分熟,中间七分熟”。心想,我也好好为难为难这家伙,响应式你就NB了啊。
意外的是,大堂经理一点不生气,只是把菜单写好,然后叫了一个人出来,把菜单交给他,说接下来由他为我服务,自己就走了。
牵线搭桥
这是一位年轻帅气的小伙,人显得特别干练精神。对MVC道,“先生,您好,我要再确认下你的菜单,以免出错”。MVC表示可以。
确认无误后,小伙说道,“请您在这稍等片刻”。然后他拿着菜单就走了。
只见小伙来到一个桌子前,把菜单放到桌子上。然后抱起一本大大的书,上面写着“厨师花名册”。MVC心想,这小伙该不会是为我选厨师吧。
只见小伙一会看菜单,一会翻书,好像确实是在比对,根据菜单匹配厨师。不一会小伙就合上了书,对着耳麦说了些什么,就朝MVC走了过来。
MVC看到小伙胸前也别着一个工作牌,上面写着,职位:服务顾问,姓名:HandlerMapping。这位服务顾问道,“先生,我已经为您甄选了一位最适合您的厨师,一会就来”。
片刻功夫,来了两个人,服务顾问说接下来由这两位为我服务,然后把菜单交给那两位,他就走了。
精心制作
MVC明白了,只要看身上的工作牌,就知道他们是干什么的了。这两位一个人身上的工作牌写着,职位:西餐厨师,姓名:Handler。另一个人身上的工作牌写着,职位:厨师助理,姓名:HandlerAdapter。MVC心想,原来是一个大厨和一个伙计。
这位厨师,强颜欢笑,实则内心紧张,不会是新东方刚毕业的吧,怎么那么像老俞,哈哈。
倒是这个助理,有点小浪的介绍到,“这位是您本次的私人厨师,我是他的助理,我们会一起为您烹饪制作”。MVC哪享受过这种服务啊,连忙笑道,“好,好,好”。
MVC见厨师和助理进了操作间,按菜单先拿出菜谱,然后挑选食材,整理食材,最后开始制作。
听着轻柔的音乐,MVC渐渐地走了神,不知在想些什么。听到兹拉兹啦的声音,MVC回过神来,原来牛排煎好了。
过度包装
本以为该端出来了,实际却没有,而是交给了另外一个人。
MVC有了经验,先看胸部,那里别着工作牌呢,只是这次为啥角度这么陡峭呢,隐约看到,职位:形象大使,姓名:HandlerResultHandler。MVC顺着往上一看,哦,什么,原来是个女的。
只见形象大使拿到煎好的牛排后,切去多余的边边角角,然后又切成整齐的小块,在盘子里摆了一个非常漂亮的造型,旁边浇上胡椒汁,上头放上一朵鲜艳的小花,再倒上一杯红酒。
踩着柔和的音乐,迈着轻盈的步伐,穿着时尚的短裙,甩着波浪的秀发,画着漂亮的淡妆,带着甜蜜的微笑。左手端着牛排,右手握着红酒,像德芙般丝滑。(本段纯属娱乐)
MVC瞪大了双眼,张大了嘴巴,哆嗦着双腿,颤抖着双手,心想,就算再成功的人士,也不过如此吧。一不小心,口水流了出来,只是不知道为谁而流,为餐,还是为秀色可餐?
“先生,这是您点的餐,请慢用”,形象大使留下这优美动听的一句话,转身离去,不一会连背影也消失了。只有这婉转悠扬的话语在空气中回荡,令MVC激动的内心久久无法平静。
水土不服
不知过了多久,MVC终于清醒了。看着眼前的牛排和红酒,感慨到,这哪里是食品,明明就是艺术品啊。
用叉子扎了一块牛排,放到嘴里,嚼了两下,怎么有点生啊。他已全然忘记自己点的是七分熟的。
再看看这葡萄美酒,红彤彤的,晶莹剔透,很是诱人。就端起酒杯喝了一口,怎么又酸又涩,简直难以下咽。
MVC叹气道,这响应式的世界确实很美很精彩很刺激,但是对于我们这些祖祖辈辈生活在同步阻塞世界的老百姓来说,一时间还真是适应不了,难以接受。
为什么我们非要接受他呢?他喝他的咖啡,我吃我的大蒜,两者相安无事,但又各有所长,这不挺好的嘛。想到此,MVC也逐渐坦然了。
MVC刚要起身去结账,大堂经理走了过来,“先生,我们的餐食和服务您还满意吧”。“形象大使真的很漂亮”,MVC嘴一秃噜,竟把内心的实话说了出来,慌忙补充道,“饭菜也不错,饭菜也不错”。
大堂经理继续道,“恭喜您成为我们开业以来第100位顾客,给您免单啦”。MVC觉得自己很幸运,连忙道谢。“要不要免费给您办张会员卡,以后都打八折”,MVC最终也婉言拒绝,因为他知道自己可能不会再来这个水土不服的地方。
MVC起身离开,推门而出,伟岸的身影不一会消失在浓浓的雾霾中。
坐在二楼的WebFlux看到眼前的这一切,内心五味杂陈。我选用顶级的食材,顶级的团队,为你打造顶级的料理,你却无福消受。
从长计议
其实Spring把WebFlux打造出来,不是为了取代MVC,也不是让所有的MVC都转向WebFlux,而是为了让用户按需选择。
所以WebFlux完全支持MVC那套基于注解的编程模式,MVC也支持WebFlux的部分功能,它们是可以一起联合使用。
因为Spring对它们底层的实现逻辑可以说是如出一辙,如图:
哈哈,本文就是根据这张图虚构出来的,你能把故事中的人物对号入座吗,哈哈。
习惯了同步阻塞模式,一下子到响应式确实稍微不适应,其实主要是思维转不过来。
相关推荐
- NestJS入门教程系列一
-
介绍Nest(NestJS)是用于构建高效,可扩展的Node.js服务器端应用程序的框架。它使用渐进式JavaScript,内置并完全支持TypeScript(但开发人员仍然能够使用JavaScrip...
- 【推荐】一个网盘资源搜索与转存工具,支持移动端与PC端!
-
如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍CloudSaver是一个基于Vue3和Express的网盘资源搜索与转存开源实用工具。它支持...
- Appium原理精讲
-
目前使用Appium新版本和旧版本的企业数目都很多,而两个版本的安装过程和api的使用又有较大的区别。但是无论表面上的东东如何变化,内部原理都是一样的。在这里我给大家介绍一下appium的核心,增进大...
- Kubernetes最小部署单元Pod
-
一、Kubernetes与Pod简介在当今云计算和容器化技术盛行的时代,Kubernetes已然成为容器编排领域的中流砥柱。它是一个开源的容器编排平台,由Google基于其内部使用的Bo...
- 最常用的四种跨域解决方案
-
前置知识什么是跨域?浏览器发送的请求地址(URL)与所在页面的地址不同(端口/协议/域名其一不同)。简言之,浏览器发出的请求url,与其所在页面的url不一样。此时,同源策略会让浏览器拒收服务器...
- Bolt.New —— 全栈AI Web自动编程
-
Bolt.New是由StackBlitz公司推出的,全栈AI工具,代码编辑、运行、部署,通通一站式搞定。它使用WebContainers技术,无需任何本地安装或配置,在浏览器中,就可以运行完整的No...
- Nodejs Express新手教程&高手进阶
-
NodejsExpress新手教程&高手进阶Express是一个NodeJS平台的框架,主要用于构于Web服务器项目。本文将通过示例介绍适合新手入门的Express基础使用,以及高手进阶知识,如:c...
- Express.js 创建Node.js Web应用
-
Express.js是一个基于Node.js的Web应用框架,框架的设计目的是构建应用的架构和简化应用的开发。框架会解决一些通用的问题,在Express.js中,Express框架会处理如:中间件、代...
- JavaScript 的 Express.js 功能及应用场景详解
-
Express.js是一个基于Node.js的轻量级Web应用框架,主要用于快速构建服务器端应用和API。它的核心功能包括以下关键点:1.路由管理URL路径与HTTP方法映射:通过...
- nodejs的express4文件下载
-
在nodejs的express框架中,下载变得非常简单,就一个方法,res.download()首先express命令行生成项目基本框架:不会的看这里:http://blog.csdn.net/zz...
- Express 系列:快速生成一个项目
-
系列预告本系列将以一个项目入手结合相关技术细节来带领大家一起学习Express这个基于Node.js的后端框架。本文首先将介绍:如何快速的生成一个具有一定结构的Express项目。Express项目结...
- nodejs的express自动生成项目框架
-
nodejs版本为:4.X,express版本为4.X1.全局安装2个模块express、express-generator在命令行输入:npminstall-gexpressnpminsta...
- express开发(一)简介与搭建
-
上周末去了趟上海书城,不愧是上海数得上号的书城,流行的科技书应有尽有,话不多说直接上图。最经典的C语言O(∩_∩)O最流行的java(づ ̄3 ̄)づ超酷的R语言/(ㄒoㄒ)/~~然而,身为一个坚定的前...
- Vue+Echarts可视化大屏系统后端框架搭建(附代码)
-
各位同学,大家好。上节课,前面我们讲解了Vue+Echarts前端部分的设计方法。这节课程,我们开始讲解使用Express进行后端设计的方法。01项目相关理论介绍什么是expressExpress是...
- Shopify电商API接口开发
-
Shopify电商API接口开发上线流程主要包括以下步骤。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎洽谈合作。前期准备-注册Shopify账号:在Shopify官网注册,用于后续开发测试...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- express框架 (43)
- scrapy框架 (52)
- beego框架 (42)
- java框架spring (43)
- grpc框架 (55)
- 前端框架bootstrap (42)
- orm框架有哪些 (43)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)