Veuillez pardonner le fait qu'il s'agit d'une mauvaise description car c'est le premier message. : bow_tone1: J'ai récemment appris le mot "Spring WebFlux", donc je vais y revenir à travers le tutoriel.
Spring WebFlux est un framework Web fourni par Spring qui effectue un traitement non bloquant. Tu peux le faire. En gros, j'ai compris que c'est un mécanisme qui permet un traitement efficace tout en économisant des threads.
Je voudrais essayer le tutoriel sur la page suivante. Building a Reactive RESTful Web Service
Environnement de développement ・ Code Visual Studio ・ AdoptezOpenJDK 11.0.5 + 10
Clonez le code source localement.
$ 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.
Puisqu'il est développé avec vscode, ouvrez le dossier développé. Menu: Fichier> Ouvrir> dossier gs-reactive-rest-service cloné
Créez un nouveau GreetingHandler.java sous ʻ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!"));
}
}
Créez un nouveau GreetingRouter.java sous ʻ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);
}
}
Créez un nouveau GreetingWebClient.java sous ʻ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();
}
}
Créez un nouveau Application.java sous ʻ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());
}
}
Cliquez avec le bouton droit sur Application.java et sélectionnez Exécuter et vous verrez le message suivant dans le terminal:
>> result = Hello, Spring WebFlux!
De même, si vous ouvrez http: // localhost: 8080 / hello dans votre navigateur, vous verrez le même message.
Merci d'avoir lu jusqu'au bout. Je suis intéressé par une programmation similaire à moi, mais j'espère que cela aidera les gens qui n'en ont aucune idée.
Recommended Posts