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

目錄

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

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

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

1.目錄結構

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

2.啟動類定義

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

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

3.WebMVC控制層

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

4.WebFlux控制層

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

5.總結

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

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

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

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

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

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

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

- RouteFunctions 將路由和處理方法連接

- HandlerFunction 處理方法

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

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

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

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

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

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


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


分享到:


相關文章: