摘要:上一章我們提到過與,對(duì)于具體的介紹沒說(shuō)到,這一章我在這里簡(jiǎn)單介紹一下,既然提到和,那肯定得提到什么是響應(yīng)式編程,什么是。
上一章我們提到過Mono 與 Flux,對(duì)于具體的介紹沒說(shuō)到,這一章我在這里簡(jiǎn)單介紹一下,既然提到Mono和Flux,那肯定得提到什么是響應(yīng)式編程,什么是WebFlux。一、什么是響應(yīng)式編程
對(duì)于關(guān)于什么是響應(yīng)編程,網(wǎng)上的說(shuō)也很多,這里簡(jiǎn)單一句話介紹:
響應(yīng)式編程是基于異步和事件驅(qū)動(dòng)的非阻塞程序,只是垂直通過在 JVM 內(nèi)啟動(dòng)少量線程擴(kuò)展,而不是水平通過集群擴(kuò)展。
二、Mono 與 FluxMono 和 Flux Reactor 是提供的兩種響應(yīng)式API
Mono:實(shí)現(xiàn)發(fā)布者,并返回 0 或 1 個(gè)元素
Flux:實(shí)現(xiàn)發(fā)布者,并返回 N 個(gè)元素
三、什么是Spring WebfluxSpring Boot Webflux 就是基于 Reactor 實(shí)現(xiàn)的。Spring Boot 2.0 包括一個(gè)新的 spring-webflux 模塊。該模塊包含對(duì)響應(yīng)式 HTTP 和 WebSocket 客戶端的支持,以及對(duì) REST,HTML 和 WebSocket 交互等程序的支持。一般來(lái)說(shuō),Spring MVC 用于同步處理,Spring Webflux 用于異步處理。
Spring Boot Webflux 有兩種編程模型實(shí)現(xiàn),一種類似 Spring MVC 注解方式,另一種是使用其功能性端點(diǎn)方式。注解的會(huì)在第二篇文章講到,下面快速入門用 Spring Webflux 功能性方式實(shí)現(xiàn)。
在Spring官方有介紹,如圖所示:
四、Thymeleaf渲染HTML這里就不演示如何創(chuàng)建項(xiàng)目了,大家參考第一章,我們需要引入Thymeleaf框架,在pom文件中添加如下內(nèi)容即可:
org.springframework.boot spring-boot-starter-thymeleaf
引入Thymeleaf后我們需要做一些簡(jiǎn)單的配置,在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 筑夢(mèng)科技 * @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")} } }
啟動(dòng)項(xiàng)目,訪問路徑http://localhost:8080/webflux/index
看到圖片里面的內(nèi)容則說(shuō)明編寫成功了,在Controller里面可以直接返回String,而不是Mono
如果大家覺得文章有用麻煩點(diǎn)一下贊,有問題的地方歡迎大家指出來(lái)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/77525.html
摘要:二教程環(huán)境三創(chuàng)建項(xiàng)目創(chuàng)建項(xiàng)目有兩種方式一種是在官網(wǎng)上創(chuàng)建二是在上創(chuàng)建如圖所示勾選然后點(diǎn),然后一直默認(rèn)最后點(diǎn)擊完成即可。我們這里看到和普通的接口沒有異同,除了返回類型是用包裝之外。與之對(duì)應(yīng)的還有,這個(gè)后面我們會(huì)講到。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 從去年開始就開始學(xué)習(xí)...
摘要:下一代服務(wù)端開發(fā)下一代服務(wù)端開發(fā)第部門快速開始第章快速開始環(huán)境準(zhǔn)備,,快速上手實(shí)現(xiàn)一個(gè)第章企業(yè)級(jí)服務(wù)開發(fā)從到語(yǔ)言的缺點(diǎn)發(fā)展歷程的缺點(diǎn)為什么是產(chǎn)生的背景解決了哪些問題為什么是的發(fā)展歷程容器的配置地獄是什么從到下一代企業(yè)級(jí)服務(wù)開發(fā)在移動(dòng)開發(fā)領(lǐng)域 《 Kotlin + Spring Boot : 下一代 Java 服務(wù)端開發(fā) 》 Kotlin + Spring Boot : 下一代 Java...
摘要:響應(yīng)式編程是基于異步和事件驅(qū)動(dòng)的非阻塞程序,只是垂直通過在內(nèi)啟動(dòng)少量線程擴(kuò)展,而不是水平通過集群擴(kuò)展。三特性常用的生產(chǎn)的特性如下響應(yīng)式編程模型適用性內(nèi)嵌容器組件還有對(duì)日志消息測(cè)試及擴(kuò)展等支持。 摘要: 原創(chuàng)出處 https://www.bysocket.com 「公眾號(hào):泥瓦匠BYSocket 」歡迎關(guān)注和轉(zhuǎn)載,保留摘要,謝謝! 02:WebFlux 快速入門實(shí)踐 文章工程: JDK...
摘要:再通過函數(shù)創(chuàng)建的之后,用來(lái)創(chuàng)建該的基本信息這些基本信息會(huì)展現(xiàn)在文檔頁(yè)面中。函數(shù)返回一個(gè)實(shí)例用來(lái)控制哪些接口暴露給來(lái)展現(xiàn),本例采用指定掃描的包路徑來(lái)定義,會(huì)掃描該包下所有定義的,并產(chǎn)生文檔內(nèi)容除了被指定的請(qǐng)求。 showImg(http://download.qfeoo.com/kotlin_springboot_logo.png); 這里有個(gè)地方需要注意,在測(cè)試WebFlux集成Swa...
摘要:數(shù)據(jù)和信息是不可分離的,數(shù)據(jù)是信息的表達(dá),信息是數(shù)據(jù)的內(nèi)涵。數(shù)據(jù)本身沒有意義,數(shù)據(jù)只有對(duì)實(shí)體行為產(chǎn)生影響時(shí)才成為信息。主要目標(biāo)是為開發(fā)提供天然的模板,并且能在里面準(zhǔn)確的顯示。目前是自然更加推薦。 這是泥瓦匠的第105篇原創(chuàng) 文章工程: JDK 1.8 Maven 3.5.2 Spring Boot 2.1.3.RELEASE 工程名:springboot-webflux-4-thym...
閱讀 950·2021-11-25 09:43
閱讀 3789·2021-11-19 09:40
閱讀 1011·2021-09-29 09:34
閱讀 1982·2021-09-26 10:21
閱讀 967·2021-09-22 15:24
閱讀 4333·2021-09-22 15:08
閱讀 3346·2021-09-07 09:58
閱讀 2910·2019-08-30 15:55