1. 程式人生 > >SpringBoot2.0中MVC和WebFlux控制層Controller對比

SpringBoot2.0中MVC和WebFlux控制層Controller對比

本篇文章是SpringBoot2.0關於Controller控制層的對比,相信很多開發最好奇的也是這塊。那麼小編就帶著大家一起先來看一下,嚐嚐鮮,本篇文章比較短小精悍,只講如何使用(前面一直在講概念,從這篇開始以後都是程式設計了),注意看圖,至於原理剖析,後面會講。閱讀時間大概3分鐘 ! (合理利用碎片時間)

目錄

  1. 演示demo目錄結構
  2. 啟動類
  3. webmvc控制層
  4. webflux控制層
  5. 總結

注意: 1,2,3,4主要是圖片,主要展示demo的啟動環境.

主要看3,4定義路由的方法! 和 5總結(請結合圖)

1.目錄結構

2.啟動類定義

這裡為了方便看到被Spring載入到的Bean故列印了一下

3.WebMVC控制層

4.WebFlux控制層

5.總結

傳統Web層我們看到了熟悉的註解,不用介紹。

我們看下為什麼Webflux沒有用@Controller,注意這裡使用配置的註解,將定義的RouterFunctions路由函式交給

Spring管理,我們這裡的命名是customer-webflux-route-01

看起來都很清爽,不過有幾個類,在SpringBoot1.0是沒有的,這裡列舉一下

  • ServerResponse 類似於HttpServletResponse (各位童鞋應該都知道,請忽略)

  • ServerRequest 類似於HttpServletRequest (各位童鞋應該都知道,請忽略)

  • Mono和 Flux 反應式程式設計核心類上文連結介紹 Springboot2.0中webflux到底優秀在哪裡

  • RouteFunctions 將路由和處理方法連線

  • HandlerFunction 處理方法

  • RequestPredicates 定義請求方法,對請求方法的一些定義,比如許可權或者對Headers的限制

下圖結合route的原始碼,很生動將這五個類的關係描述描述出來

通過webmvc和Webflux控制層的簡單demo,和WebFlux的常用類的演示,SpringBoot2.0的功能使用大概都已經表述清楚了,細節本文不做描述,下一篇主要講這幾個核心類的API使用細節! API程式碼比較多,所以分兩篇展示。最後謝謝你的閱讀,很高興為你的碎片時間,傳播一點知識。我們下篇見!