O'Reilly logo
live online training icon Live Online training

Reactive Spring and Spring Boot

Using the Spring WebFlux module to build high-performance reactive systems

Topic: Software Development
Ken Kousen

The latest major releases of the Spring Framework, Spring 5 and Spring Boot 2, take full advantage of the new functional features provided by Java SE 8 as well as the Reactive Streams specification. The new WebFlux module adds Spring's ease of use and Spring Boot's ease of configuration to the design and development of reactive applications, while Reactive Streams allow applications to more efficiently make use of limited resources by adding nonblocking capabilities.

Join expert Ken Kousen to gain the foundation you need to take advantage of reactive programming, the Reactive Streams specification (a widely adopted industry standard), and the WebFlux module.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

  • Spring's convention over configuration and dependency injection
  • Spring Boot autoconfiguration and rapid prototyping capabilities
  • The Reactive Streams specification and how it contributes to building asynchronous, reactive applications
  • How to test those applications with the Spring TestContext Framework

And you’ll be able to:

  • Create and customize a Spring application using Spring Boot
  • Write applications based on the Reactive Streams specification
  • Use the new WebFlux module in Spring 5 to build reactive applications
  • Access NoSQL databases like MongoDB using reactive drivers
  • Create microservices that implement the Reactive Streams specification with backpressure
  • Work with the new WebClient and WebTestClient classes as nonblocking alternatives to the RestTemplate

This training course is for you because...

  • You're a Java developer with some experience using Spring who is interested in the latest features in Spring 5 and Spring Boot 2.
  • You're a team member or leader who needs to build and support Spring and/or Spring Boot applications, especially those taking advantage of reactive approaches to development.
  • You want to learn more about the new trend of writing asynchronous, nonblocking applications.


  • A working knowledge of Java (Familiarity with Java 8 lambdas is useful but not required.)
  • Experience with the Spring Framework or completion of a course such as Getting Started with Spring and Spring Boot
  • Familiarity with web applications and RESTful services

Recommended preparation:

Recommended follow-up:

About your instructor


The timeframes are only estimates and may vary according to how the class is progressing

Installing and configuring Spring using Spring Boot (25 minutes)

  • Lecture: Using the Initializr page with reactive features; automatic configuration in Spring Boot
  • Hands-on exercise: Create a Spring application with the WebFlux module

Spring capabilities (30 minutes)

  • Lecture: Using dependency injection; Java configuration classes; annotations and component scans
  • Hands-on exercise: Use dependency injection and configure Spring beans

Break (10 minutes)

Testing Spring applications (25 minutes)

  • Lecture: The Spring TestContext Framework; injecting test fixtures; rolling back transactions
  • Hands-on exercise: Write tests using WebTestClient

Reactive Spring applications (30 minutes)

  • Lecture: Reactive Streams and Spring; the Spring WebFlux module; Flux and Mono
  • Hands-on exercise: Use Flux and Mono

Break (10 minutes)

Reactive issues (30 minutes)

  • Lecture: Latency; reactive and event-loop programming; the pull versus push model; backpressure
  • Hands-on exercise: Use the WebFlux module

Additional material, wrap-up, and Q&A (20 minutes)

  • Lecture: HATEOAS and the Hal Browser; Spring services (messaging, email, and more); and resources for future study