35 lines
1.4 KiB
Java
35 lines
1.4 KiB
Java
package com.baeldung.reactive;
|
|
|
|
import org.springframework.context.ApplicationContext;
|
|
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.ComponentScan;
|
|
import org.springframework.http.server.reactive.HttpHandler;
|
|
import org.springframework.http.server.reactive.ReactorHttpHandlerAdapter;
|
|
import org.springframework.web.reactive.config.EnableWebFlux;
|
|
import org.springframework.web.server.adapter.WebHttpHandlerBuilder;
|
|
import reactor.ipc.netty.NettyContext;
|
|
import reactor.ipc.netty.http.server.HttpServer;
|
|
|
|
@ComponentScan(basePackages = {"com.baeldung.security"})
|
|
@EnableWebFlux
|
|
public class SpringSecurity5Application {
|
|
|
|
public static void main(String[] args) {
|
|
try (AnnotationConfigApplicationContext context =
|
|
new AnnotationConfigApplicationContext(SpringSecurity5Application.class)) {
|
|
context.getBean(NettyContext.class).onClose().block();
|
|
}
|
|
}
|
|
|
|
@Bean
|
|
public NettyContext nettyContext(ApplicationContext context) {
|
|
HttpHandler handler = WebHttpHandlerBuilder.applicationContext(context)
|
|
.build();
|
|
ReactorHttpHandlerAdapter adapter = new ReactorHttpHandlerAdapter(handler);
|
|
HttpServer httpServer = HttpServer.create("localhost", 8080);
|
|
return httpServer.newHandler(adapter).block();
|
|
}
|
|
|
|
}
|