Logo

dev-resources.site

for different kinds of informations.

SpringBoot WebFlux Annotation-based RestAPIs

Published at
5/3/2021
Categories
springboot
webflux
restapi
annotation
Author
loizenai
Author
8 person written this
loizenai
open
SpringBoot WebFlux Annotation-based RestAPIs

https://grokonez.com/spring-framework/spring-webflux/springboot-webflux-annotation-based-programming-model

SpringBoot WebFlux Annotation-based RestAPIs

Reactive programming is about non-blocking applications. And Spring Framework 5 includes a new spring-webflux module, supports Reactive Streams for communicating backpressure across async components and libraries. So in the tutorial, JavaSampleApproach will guide you through the steps for creating a SpringBoot WebFlux Annotation-based restful APIs.

Related posts:

I. Technologies

– Java: 1.8
– Maven: 3.3.9
– Spring Tool Suite: Version 3.9.0.RELEASE
– Spring Boot: 2.0.0.M4

  • Spring Boot Starter Webflux

    II. Spring WebFlux

    Spring Framework 5.0 supports WebFlux with fully asynchronous and non-blocking and does NOT require the Servlet API(Unlike Spring MVC).

Spring WebFlux supports 2 distinct programming models:

  • Annotation-based with @Controller
  • Functional with Java 8 lambda style

In the tutorial, we will introduce WebFlux with Annotation-based.
For starting with WebFlux, SpringBoot supports a collection dependency: spring-boot-starter-webflux.

Sample code:


@RestController
@RequestMapping(value="/api/customer")
public class RestControllerAPIs {
    
    @GetMapping("/")
    public Flux getAll() {
    
        ...
    }
    
    @GetMapping("/{id}")
    public Mono getCustomer(@PathVariable Long id) {
        
        ...
    }
}
  • reactor.core.publisher.Flux: is a standard Publisher representing a reactive sequence of 0..N items, optionally terminated by either a success signal or an error.
  • reactor.core.publisher.Mono: Mono is a specialized Publisher that emits at most single-valued-or-empty result.

    III. Practice

    In the tutorial, We create a SpringBoot project as below:

springboot webflux annotation-based - project structure

Step to do:

  • Create SpringBoot project
  • Create data model
  • Implement Spring WebFlux APIs
  • Run and check results

    1. Create SpringBoot project

    Using SpringToolSuite, create a SpringBoot project with Reactive Web dependency:

springboot webflux reactive - select reactive web

Check pom.xml after creating:

More at:

https://grokonez.com/spring-framework/spring-webflux/springboot-webflux-annotation-based-programming-model

SpringBoot WebFlux Annotation-based RestAPIs

webflux Article's
24 articles in total
Favicon
Introducing Java Library for Backend Microservice Webflux (Reactor-core)
Favicon
Making reactive applications with a Kitten Care Example
Favicon
Reactive Programming applied to Legacy Services β€” A WebFlux example
Favicon
Getting Started with Spring WebFlux
Favicon
Implementing Soft Delete in Spring WebFlux with R2DBC
Favicon
Java library for developing backend with reactive programming
Favicon
How to Run an Asynchronous Task in Spring WebFlux Without Blocking the Main Response?
Favicon
How to Run a Method Asynchronously in a Reactive Chain in Spring WebFlux?
Favicon
Spring WebFlux Retry Mechanism
Favicon
Implementing Context Propagation in Reactive Programming Projects πŸ”„
Favicon
Ability to unlearn in Software: Reactive Programming
Favicon
Create DTO using get results from repository returns duplicate values in Spring Boot Reactive WebFlux
Favicon
Spring R2DBC, MariaDB, and JSON columns
Favicon
SpringBoot WebFlux Annotation-based RestAPIs
Favicon
SpringBoot WebFlux Functional RestAPIs
Favicon
Spring Webflux testing with Mockito
Favicon
A Short Example of Real-Time Event Streaming Using Spring WebFlux
Favicon
Global Error Handling In Webflux (Reactive World)
Favicon
Spring Webflux - Reactive Java Applications - Part 2
Favicon
Building an URL Shortening API with Spring WebFlux (and a lot of supporting cast)
Favicon
Spring Webflux - Reactive Java Applications - Part 1
Favicon
Spring Webflux - Aplicaçáes reativas em Java - Parte 1
Favicon
KVision v2.0.0 - with Bootstrap 4, Spring Webflux and lots of other improvements
Favicon
Sending Multipart Form Data Using Spring WebTestClient

Featured ones: