摘要:上一章我們提到過與,對于具體的介紹沒說到,這一章我在這里簡單介紹一下,既然提到和,那肯定得提到什么是響應式編程,什么是。
上一章我們提到過Mono 與 Flux,對于具體的介紹沒說到,這一章我在這里簡單介紹一下,既然提到Mono和Flux,那肯定得提到什么是響應式編程,什么是WebFlux。一、什么是響應式編程
對于關于什么是響應編程,網上的說也很多,這里簡單一句話介紹:
響應式編程是基于異步和事件驅動的非阻塞程序,只是垂直通過在 JVM 內啟動少量線程擴展,而不是水平通過集群擴展。
二、Mono 與 FluxMono 和 Flux Reactor 是提供的兩種響應式API
Mono:實現發布者,并返回 0 或 1 個元素
Flux:實現發布者,并返回 N 個元素
三、什么是Spring WebfluxSpring Boot Webflux 就是基于 Reactor 實現的。Spring Boot 2.0 包括一個新的 spring-webflux 模塊。該模塊包含對響應式 HTTP 和 WebSocket 客戶端的支持,以及對 REST,HTML 和 WebSocket 交互等程序的支持。一般來說,Spring MVC 用于同步處理,Spring Webflux 用于異步處理。
Spring Boot Webflux 有兩種編程模型實現,一種類似 Spring MVC 注解方式,另一種是使用其功能性端點方式。注解的會在第二篇文章講到,下面快速入門用 Spring Webflux 功能性方式實現。
在Spring官方有介紹,如圖所示:
四、Thymeleaf渲染HTML這里就不演示如何創建項目了,大家參考第一章,我們需要引入Thymeleaf框架,在pom文件中添加如下內容即可:
org.springframework.boot spring-boot-starter-thymeleaf
引入Thymeleaf后我們需要做一些簡單的配置,在application.properties文件中直接粘貼即可。主要是包括常用的編碼、是否開啟緩存等等。
spring.thymeleaf.cache=true spring.thymeleaf.check-template=true spring.thymeleaf.check-template-location=true spring.thymeleaf.enabled=true spring.thymeleaf.encoding=UTF-8 spring.thymeleaf.mode=HTML5 spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.servlet.content-type=text/html spring.thymeleaf.suffix=.html
編寫HTML,把文件放在resources/templates下
Title Hello
Now time
編寫Controller
package io.intodream.kotlin02.web import org.springframework.stereotype.Controller import org.springframework.ui.Model import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RequestMapping import reactor.core.publisher.Mono import java.time.LocalDateTime /** * @description * * @author Jwenk * @copyright intoDream.io 筑夢科技 * @email xmsjgzs@163.com * @date 2019-03-24,18:24 */ @RequestMapping("/webflux") @Controller class IndexController { @GetMapping("/index") fun index(model : Model): Mono{ model.addAttribute("name", "Tom") model.addAttribute("time", LocalDateTime.now()) return Mono.create{ monoSink -> monoSink.success("index")} } }
啟動項目,訪問路徑http://localhost:8080/webflux/index
看到圖片里面的內容則說明編寫成功了,在Controller里面可以直接返回String,而不是Mono
如果大家覺得文章有用麻煩點一下贊,有問題的地方歡迎大家指出來。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77525.html
摘要:二教程環境三創建項目創建項目有兩種方式一種是在官網上創建二是在上創建如圖所示勾選然后點,然后一直默認最后點擊完成即可。我們這里看到和普通的接口沒有異同,除了返回類型是用包裝之外。與之對應的還有,這個后面我們會講到。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 從去年開始就開始學習...
摘要:下一代服務端開發下一代服務端開發第部門快速開始第章快速開始環境準備,,快速上手實現一個第章企業級服務開發從到語言的缺點發展歷程的缺點為什么是產生的背景解決了哪些問題為什么是的發展歷程容器的配置地獄是什么從到下一代企業級服務開發在移動開發領域 《 Kotlin + Spring Boot : 下一代 Java 服務端開發 》 Kotlin + Spring Boot : 下一代 Java...
摘要:響應式編程是基于異步和事件驅動的非阻塞程序,只是垂直通過在內啟動少量線程擴展,而不是水平通過集群擴展。三特性常用的生產的特性如下響應式編程模型適用性內嵌容器組件還有對日志消息測試及擴展等支持。 摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝! 02:WebFlux 快速入門實踐 文章工程: JDK...
摘要:再通過函數創建的之后,用來創建該的基本信息這些基本信息會展現在文檔頁面中。函數返回一個實例用來控制哪些接口暴露給來展現,本例采用指定掃描的包路徑來定義,會掃描該包下所有定義的,并產生文檔內容除了被指定的請求。 showImg(http://download.qfeoo.com/kotlin_springboot_logo.png); 這里有個地方需要注意,在測試WebFlux集成Swa...
摘要:數據和信息是不可分離的,數據是信息的表達,信息是數據的內涵。數據本身沒有意義,數據只有對實體行為產生影響時才成為信息。主要目標是為開發提供天然的模板,并且能在里面準確的顯示。目前是自然更加推薦。 這是泥瓦匠的第105篇原創 文章工程: JDK 1.8 Maven 3.5.2 Spring Boot 2.1.3.RELEASE 工程名:springboot-webflux-4-thym...
閱讀 853·2021-11-25 09:43
閱讀 3685·2021-11-19 09:40
閱讀 887·2021-09-29 09:34
閱讀 1795·2021-09-26 10:21
閱讀 875·2021-09-22 15:24
閱讀 4197·2021-09-22 15:08
閱讀 3270·2021-09-07 09:58
閱讀 2676·2019-08-30 15:55