02. Reactive Programming
02. Reactive Programming
==================
Old Approach
==================
@RestController
public class WelcomeRestController{
@GetMapping("/msg")
public String getMsg(){
return "Hello";
}
===============
New Approach
===============
@Component
public class MessageRequestHandler{
@Configuration
public MsgRouter {
@Bean
pubilc RouterFunction<ServerResponse> route(MessageRequestHandler
requestHandler){
return RouterFunctions.route(GET("/hello"))
.and(accept(MediaType.APPLIC
ATION_JSON), MessageRequestHandler::handle);
=============================
SprinBoot Reactive Example
============================
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Greeting {
@Component
public class GreetingHandler {
return ServerResponse.ok()
.contentType(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromValue(new Greeting("Hello
World")));
}
}
@Configuration
public class GreetingRouter {
@Bean
public RouterFunction<ServerResponse> route(GreetingHandler greeting){
return RouterFunctions
.route(GET("/hello")
.and(accept(MediaType.APPLICATION_JSON)), greeting::hello);
}
}