亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

SpringBoot Kotlin 系列之HTML與WebFlux

crossoverJie / 2400人閱讀

摘要:上一章我們提到過與,對(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 與 Flux

Mono 和 Flux Reactor 是提供的兩種響應(yīng)式API

Mono:實(shí)現(xiàn)發(fā)布者,并返回 0 或 1 個(gè)元素

Flux:實(shí)現(xiàn)發(fā)布者,并返回 N 個(gè)元素

三、什么是Spring Webflux

Spring 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 ,但是 Mono 代表著我這個(gè)返回 View 也是回調(diào)的。
如果大家覺得文章有用麻煩點(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

相關(guān)文章

  • SpringBoot 2.X Kotlin 系列Hello World

    摘要:二教程環(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í)...

    warkiz 評(píng)論0 收藏0
  • Kotlin + Spring Boot : 下一代 Java 服務(wù)端開發(fā) 》

    摘要:下一代服務(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...

    springDevBird 評(píng)論0 收藏0
  • Spring Boot 2 快速教程:WebFlux 快速入門(二)

    摘要:響應(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...

    gaara 評(píng)論0 收藏0
  • SpringBoot 2.X KotlinSwagger2生成API文檔

    摘要:再通過函數(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...

    cyqian 評(píng)論0 收藏0
  • Spring Boot 2 快速教程:WebFlux 集成 Thymeleaf(五)

    摘要:數(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...

    姘存按 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<