Reactive Spring Boot
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
- Experience with Java
Building Microservices with Spring Boot, 2nd Edition LiveLessons (video)
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)
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