Java Can';t在SpringWebFlux 2.1.0.0版本中启动Netty服务器
在我的Java应用程序中,我使用Spring Webflux作为依赖项,如:Java Can';t在SpringWebFlux 2.1.0.0版本中启动Netty服务器,java,spring,netty,spring-webflux,project-reactor,Java,Spring,Netty,Spring Webflux,Project Reactor,在我的Java应用程序中,我使用Spring Webflux作为依赖项,如: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> <version>2.1.0.R
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
</dependencies>
如何启动Netty服务器
您不需要在Spring Boot应用程序中手动启动服务器,只需将您的
RouterFunction
声明为@Bean
,如下所示:
@Bean
public RouterFunction<ServerResponse> hello() {
return route(GET("/hello"),
request -> {
Mono<String> hi = Mono.just("hi");
return ServerResponse.ok().contentType(TEXT_PLAIN).body(hi, String.class);
});
}
HttpServer
.create()
.host("localhost")
.port(8080)
.handle(adapter)
.bind()
.block();
@Bean
public RouterFunction<ServerResponse> hello() {
return route(GET("/hello"),
request -> {
Mono<String> hi = Mono.just("hi");
return ServerResponse.ok().contentType(TEXT_PLAIN).body(hi, String.class);
});
}
RouterFunction<?> route = RouterFunctions.route(RequestPredicates.GET("/hello"),
request -> {
Mono<String> hi = Mono.just("hi");
return ServerResponse.ok().contentType(MediaType.TEXT_PLAIN).body(hi, String.class);
});
HttpHandler httpHandler = RouterFunctions.toHttpHandler(route);
ReactorHttpHandlerAdapter adapter =
new ReactorHttpHandlerAdapter(httpHandler);
HttpServer server = HttpServer.create().host("localhost").port(8080);
DisposableServer disposableServer = server.handle(adapter).bind().block();
disposableServer.onDispose().block();