[JAVA] Probieren Sie das Spring WebFlux-Tutorial aus

Einführung

Bitte verzeihen Sie den Punkt, dass es sich um eine schlechte Beschreibung handelt, da es sich um den ersten Beitrag handelt. : bow_tone1: Ich habe kürzlich das Wort "Spring WebFlux" gelernt, daher werde ich es im Tutorial ansprechen.

Was ist WebFlux?

Spring WebFlux ist ein von Spring bereitgestelltes Webframework, das eine nicht blockierende Verarbeitung ausführt. Du kannst es schaffen. Grob gesagt habe ich verstanden, dass es sich um einen Mechanismus handelt, der eine effiziente Verarbeitung ermöglicht und gleichzeitig Threads speichert.

Was ist diesmal zu tun?

Ich möchte das Tutorial auf der folgenden Seite ausprobieren. Building a Reactive RESTful Web Service

Entwicklungsumgebung ・ Visual Studio-Code ・ AdoptOpenJDK 11.0.5 + 10

1. Vorbereitung

Klonen Sie den Quellcode lokal.

$ git clone https://github.com/spring-guides/gs-reactive-rest-service.git
Cloning into 'gs-reactive-rest-service'...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 822 (delta 6), reused 14 (delta 5), pack-reused 801
Receiving objects: 100% (822/822), 408.59 KiB | 771.00 KiB/s, done.
Resolving deltas: 100% (553/553), done.

Öffnen Sie den entwickelten Ordner, da er mit vscode entwickelt wurde. Menü: Datei> Öffnen> geklonter Ordner gs-reactive-rest-service

2. Erstellen Sie einen WebFlux-Handler.

Erstellen Sie eine neue GreetingHandler.java unter "initial / src / main / java / hello".

GreetingHandler.java


package hello;

import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.server.ServerRequest;
import org.springframework.web.reactive.function.server.ServerResponse;

import reactor.core.publisher.Mono;

@Component
public class GreetingHandler {

  public Mono<ServerResponse> hello(ServerRequest request) {
    return ServerResponse.ok().contentType(MediaType.TEXT_PLAIN)
      .body(BodyInserters.fromObject("Hello, Spring!"));
  }
}

3. Erstellen Sie einen Router.

Erstellen Sie eine neue GreetingRouter.java unter "initial / src / main / java / hello".

GreetingRouter.java


package hello;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerResponse;

@Configuration
public class GreetingRouter {

  @Bean
  public RouterFunction<ServerResponse> route(GreetingHandler greetingHandler) {

    return RouterFunctions
      .route(RequestPredicates.GET("/hello").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)), greetingHandler::hello);
  }
}

4. Erstellen Sie einen Webclient.

Erstellen Sie eine neue GreetingWebClient.java unter "initial / src / main / java / hello".

GreetingWebClient


package hello;

import org.springframework.http.MediaType;
import org.springframework.web.reactive.function.client.ClientResponse;
import org.springframework.web.reactive.function.client.WebClient;

import reactor.core.publisher.Mono;

public class GreetingWebClient {
  private WebClient client = WebClient.create("http://localhost:8080");

  private Mono<ClientResponse> result = client.get()
      .uri("/hello")
      .accept(MediaType.TEXT_PLAIN)
      .exchange();

  public String getResult() {
    return ">> result = " + result.flatMap(res -> res.bodyToMono(String.class)).block();
  }
}

5. Lassen Sie die App laufen.

Erstellen Sie eine neue Application.java unter "initial / src / main / java / hello".

Application.java


package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);

    GreetingWebClient gwc = new GreetingWebClient();
    System.out.println(gwc.getResult());
  }
}

6. Probieren Sie es aus.

Klicken Sie mit der rechten Maustaste auf Application.java und wählen Sie Ausführen. Im Terminal wird die folgende Meldung angezeigt: >> result = Hello, Spring WebFlux! Wenn Sie http: // localhost: 8080 / hello in Ihrem Browser öffnen, wird dieselbe Meldung angezeigt.

Schließlich

Vielen Dank für das Lesen bis zum Ende. Ich bin daran interessiert, ähnlich wie ich zu programmieren, aber ich hoffe, es hilft Menschen, die keine Ahnung haben.

Recommended Posts

Probieren Sie das Spring WebFlux-Tutorial aus
Versuchen wir das S2 Struts Tutorial (# 3_180425)
Probieren wir das S2Struts-Tutorial aus (# 5_180526).
Probieren wir das S2Struts-Tutorial aus (# 4_180505).
Probieren wir das S2Struts-Tutorial aus (# 1_180423).
Probieren wir das S2Struts-Tutorial aus (# 2_180424).
Versuchen wir das S2Struts-Tutorial (# 0_yymmdd)
[Tutorial] Spring Batch
Versuchen Sie, den CORBA-Dienst von Spring (Java) aus aufzurufen.
Versuchen Sie es mit Spring JDBC
Versuchen Sie vorerst, Spring Cloud Config auszuführen
Versuchen Sie Spring Boot von 0 bis 100.
Aufgabenplan für das Spring Boot Tutorial
Versuchen Sie, die Springcode-Such-API mit Spring Boot aufzurufen
Versuchen Sie, eine WebFlux-Sitzung zu implementieren
Versuchen Sie es mit Spring Boot Security
Versuchen Sie, einen WebFlux-Filter zu implementieren
Versuchen Sie Spring Boot auf dem Mac
Spring Boot zum ersten Mal
Spring Boot Tutorial Verwenden der Spring Security-Authentifizierung
Memo nach dem ersten Frühjahrsprojekt-MVC-
Einbetten des Konfigurationsservers in Spring Cloud Config
Versuchen Sie es mit dem Nachrichtensystem Pulsar
Versuchen Sie, Spring Boot auf Kubernetes auszuführen
Verfolgen Sie das Datomic-Tutorial mit Datascript
Spring AOP zum ersten Mal
Memo nach dem ersten Frühjahrsprojekt-Datenbank-
Filtern Sie das Ergebnis von BindingResult [Spring]