O'Reilly logo
live online training icon Live Online training

Reactive Spring Boot

Josh Long

Reactive programming is a recognition of the fact that traditional, synchronous and blocking approaches to input/output are inefficient. Asynchronous, non-blocking approaches to input/output exist, but haven't traditionally been supported at higher layers (database access, web services, etc.) in the application stack. The Reactive Streams specification gives us a higher order computational metaphor to support processing in a way that could benefit from asynchronous input/output. Project Reactor supports the Reactive Streams specification and Spring Framework 5 supports natively it. Spring Framework 5 ships with a net-new Netty based reactive web runtime called Spring WebFlux. Spring Framework 5 is the basis for new reactive releases of Spring projects including Spring Data Kay, Spring Security 5, Spring Boot 2 and Spring Cloud Finchley.

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

  • Examine the different aspects of the Spring ecosystem that lend themselves to the functional and reactive style of programming.
  • Explore Reactive Data Access using Spring Data and Spring Data Mongo DB.
  • Understand the Reactive Streams specification as a compatibility layer and how to use the Reactive Stream types as a mechanism for interoperability across OS projects.
  • Test reactive applications.
  • How to consume data from a publisher in Spring Integration and how to consume data from a publisher in Spring Cloud Stream.
  • Use Spring Cloud Function.
  • Build Edge Services.

This training course is for you because...

  • You are an existing or new Spring user
  • You are an experienced Java developer

Prerequisites

  • Experience with Java

Recommended Preparation:

Building Microservices with Spring Boot, 2nd Edition LiveLessons (video)

Recommended Follow-up:

About your instructor

  • Josh Long (@starbuxman) is the Spring Developer Advocate at Pivotal. Josh is a Java Champion, author of 5 books (including "Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry") and 6 best-selling video trainings (including "Building Microservices with Spring Boot Livelessons" with Phil Webb), and an open-source contributor (Spring Boot, Spring Integration, Spring Cloud, Activiti and Vaadin)

Schedule

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

Lesson 1: Functional Spring

  • 1.1 Introduction to Kotlin
  • 1.2 Functional Spring with Java
  • 1.3 Functional Spring with Kotlin

Lesson 2: Data

  • 2.1 Reactive data access
  • 2.2 Write data to the database

Lesson 3: Reactive Web Apps

  • 3.1 Spring MVC-style controllers
  • 3.2 Functional Reactive Endpoints in Java
  • 3.3 Functional Reactive Endpoints in Kotlin

Lesson 4: Reactive Streams Redux

  • Reactive Streams specification
  • 4.2 Processing data with Akka Actors

Section 5: Testing

  • Virtualizing time and testing remote web calls

Section 6: Integration

  • Reactive Spring Integration and Spring Cloud Stream

Section 7: Function-as-a-Service

  • Project Riff and deployment using Spring Cloud Foundation

Section 8: Gateways and Edge Services

  • Developing and registering a service, creating a Gateway Edge Service, Rate limiting requests, Configuring Spring Security, and Building an API adapter