Reactive Programming With Spring Framework 5

Learn Reactive Programming with Spring Framework 5!

Last updated 2022-01-10 | 4.5

- Learn how to leverage the Reactive Programming Features of Spring Framework 5
- Build microservices with Spring WebFlux
- Leverage Reactive types in Spring Data MongoDB

What you'll learn

Learn how to leverage the Reactive Programming Features of Spring Framework 5
Build microservices with Spring WebFlux
Leverage Reactive types in Spring Data MongoDB
Functional Programming with Java
Java 8 Streams

* Requirements

* Knowledge of Java and the Spring Framework is required
* SQL Knowledge helpful
* Basic Docker skills recommended
* but not required

Description

NOTEThis course was completely recreated in May 2021 using Java 11 and Spring Boot 2.4.x.

One of the most interesting new features in Spring Framework 5 is Reactive Programming.

Reactive Programming is an important paradigm shift from the traditional object oriented programming commonly used with Java.

Reactive Programming adopts an immutable / functional style (which is fully explained in the course!).

While Reactive Programming may not be an automatic way of making your code faster, it can help your code scale up better. Especially if you are dealing with streams of data.

In side this course, you will first learn the fundamental concepts of Reactive Programming. You'll learn why immutability and functional programming are important to Reactive Programming.

Next, you'll get hands on experience with building a Reactive application to stream 'movie events' leveraging the Reactive data types and WebFlux - both new to Spring Framework 5. 

These exercises help get you comfortable using the Reactive Programming APIs and functional programing style.

Following is a whole section on using Spring Web Client. This is the reactive web client introduced in Spring Framework 5. Spring Web Client is the reactive equivalent of Spring RestTemplate.

While Spring Web Client is the equivalent of Spring RestTemplate, Spring Web Flux is the equivalent of Spring MVC. You will learn how to use Spring Web Flux to create a RESTful API.

The JDBC API for accessing relational databases is blocking, and therefore not compatible with Reactive Programming. R2DBC is the reactive equivalent of JDBC. You will see how to use Spring Data R2DBC and reactive types to perform CRUD operations against a Relational Database.

Spring Webflux also introduces a new functional style API for defining endpoints. You will see how to use this functional API to configure a RESTful API. Hello functional programming, good by Spring MVC annotated controller classes!

Where Reactive Programming really excels is dealing streams of data. You will see how to build a stock quote streaming service. Then how to stream those stock quotes into a MongoDB document store. And how to stream stock quotes to RabbitMQ Messages.

Course Extra - IntelliJ IDEA Ultimate

Students enrolling in the course can receive a free 120 day trial license to IntelliJ IDEA Ultimate! Get hands on experience using the Java IDE preferred by Spring Framework professionals! 

Course Extra - Access to a Private Slack Community

You're not just enrolling in a course --> You are joining a community learning about Reactive Programming.

With your enrollment to the course, you can access an exclusive Slack community. Get help from the instructor and other Spring Framework Gurus from around the world - in real time! This community is only available to students enrolled in this course. 

With your enrollment, you can join this community of awesome gurus!

Closed Captioning / Subtitles

Closed captioning in English is available for all course videos!

PDF Downloads

All keynote presentations are available for you to download as PDFs.

Lifetime Access

When you purchase this course, you will receive lifetime access! You can login anytime from anywhere to access the course content.

No Risk - Money Back Guarantee 

You can buy this course with no risk. If you are unhappy with the course, for any reason, you can get a complete refund. The course has a 30 day Money Back Guarantee.

After you complete this course, you will be comfortable in using the Reactive Programming features in your existing or new Spring Framework Applications.


Enroll today and start learning Reactive Programming with Spring Framework 5!

Who this course is for:

  • Ideal for Spring Framework Developers wishing to learn Reactive Programming

Course content

18 sections • 142 lectures

Introduction Preview 01:17

Introduction to the course Reactive Programming with Spring Framework 5

Getting the Most Out of Your Course Preview 05:09

Setting Up Your Development Environment Preview 03:07

GitHub Workflow Preview 12:20

Learn about the recommended GitHub workflow for the course.

Course Slack Channel Preview 00:47

See how you can get access to the Slack Channel exclusive to this course.

Is Your IDE Free Like a Puppy? Preview 02:45

Free 120 Day IntelliJ IDEA Trial! Preview 00:41

Introduction to Reactive Programming Preview 01:06

Reactive Manifesto Preview 09:41

What is Reactive Programming? Preview 13:57

Reactive Streams Preview 06:35

Create Spring Boot Project Preview 07:05

See how to create a Spring Boot project using the dependencies required to support Reactive Programming.

Implement Reactive Repository Preview 03:13

Mono Operations Preview 06:18

Flux Operations Preview 06:28

Filtering Flux Objects Preview 09:49

Assignment - Implement find by Id

Implement find by Id

Reactive Step Verifier Preview 04:45

Introduction Preview 01:42

Netflux is an example originally created by Josh Long of Pivotal. It's a great example to work through to learn concepts related to Reactive Programming with Spring Framework 5.

Create New Project Preview 04:54

Create a new Spring Boot project

Create Domain Model and Repositories Preview 03:28

Initializing Data With Command Line Runner Preview 07:34

Create Service Layer Preview 03:10

Create Spring MVC Controller Preview 06:16

Streaming Events Preview 08:10

Introduction Preview 01:40

Spring Web Client is the new non-blocking client used to consume RESTful APIs.

What is Functional Programming? Preview 06:55

RestTemplate vs Web Client Preview 03:36

Beer Project Overview Preview 04:05

Assignment - Creating Beer Client Project

Create a Beer Client Project

Creating WebClient Preview 07:49

WebClient Get Operations Preview 06:21

Using Query Parameters Preview 05:10

Netty Client Request Logging Preview 05:26

Assignment - Implement Find by Id

Your turn to implement a Find By Id Operation

Using URL Parameters Preview 03:04

Post Operations Preview 06:19

Put Operations Preview 08:29

Delete Operations Preview 04:50

Exception Handling Preview 08:07

Reactive Threading Preview 10:43

Introduction Preview 01:42

Introduction to Spring WebFlux - the new Reactive replacement for Spring MVC.

Reactive Brewery Overview Preview 03:38

Update Maven Dependencies Preview 05:14

WebTestClient Preview 06:29

Learn about using the WebTestClient, a replacement for Spring MockMVC.

Update Get Beer to Reactive Type Preview 02:26

Assignment - Update Get Operations to Reactive Types

Update remaining GET operations to Reactive types

Update Remaining Operations Preview 03:13

Introduction Preview 02:46

Introduction to using R2DBC with Spring Boot and Spring Data.

Overview of Spring Data R2DBC Preview 05:10

Maven Dependencies Preview 07:07

Initializing Database Preview 13:59

Refactor Get Beer By Id Preview 09:13

Assignment - Refactor Get Beer By UPC

Assignment - Refactor Get Beer By UPC

Refactor List Beers Preview 12:34

Refactor Create New Beer Preview 07:03

Refactor Update Beer Preview 12:41

Refactor Update Beer Not Found Preview 09:18

Refactor Delete Beer Preview 08:07

Introduction Preview 02:03

Introduction to Functional Endpoints Preview 02:58

Get Beer by Id Preview 12:29

Assignment Get Beer by UPC

Add V2 Get Beer by UPC

Create New Beer Preview 06:08

Validate Save New Beer Preview 05:52

Update Beer Preview 08:08

Update Beer Not Found Preview 03:43

Delete Beer Preview 10:17

Introduction Preview 01:51

Initial Project Creation Preview 02:27

Quote Object Preview 02:42

Quote Generator Service Preview 05:21

Testing with Lamdas Preview 06:49

WebFlux Quote Handler Preview 07:02

WebFlux Quote Router Preview 09:31

Introduction Preview 01:01

Overview of Reactive Mongo Preview 03:46

Initial Project Review Preview 03:56

Data Model Preview 05:43

Stock Quote Generator Service Preview 02:30

Stock Quote History Service Preview 03:22

Quote Runner Preview 07:29

Introduction Preview 00:53

Overview of Reactive RabbitMQ Preview 02:57

Initial Project Review Preview 03:37

Stock Quote Generator Service Preview 02:03

Message Sender Configuration Preview 04:40

Send Stock Quote to Queue Preview 06:36

Read Stock Quote from Queue Preview 07:51

Introduction to Reactive Programming with Spring Framework 5 Preview 02:15

Instructor Introduction - John Thompson, Spring Framework Guru Preview 02:24

Free 120 Day IntelliJ Trial! Preview 00:41

Using GitHub Preview 04:06

Code Examples in GitHub Preview 03:03

Introduction Preview 01:00

Reactive Manifesto Preview 12:18

What is Reactive Programming? Preview 10:57

Reactive Streams Preview 07:02

Reactive Programming Examples with Spring Preview 08:10

Conclusion Preview 01:11

Introduction Preview 01:41

Create a New Spring Boot Project Preview 04:26

Create Domain Model Preview 03:33

Creating Spring Data Reactive Repositories Preview 01:54

Initializing Data With Spring Boot Command Line Runner Preview 04:55

Create Service Layer Preview 04:02

Create Rest Endpoint Preview 04:08

Running The Reactive Spring Boot Application Preview 06:45

Conclusion Preview 01:03

Introduction Preview 01:05

What is Functional Programming? Preview 08:35

Functional Programming Examples Preview 09:34

Closures, Effectively Final and Lazy Evaluation Preview 05:46

Conclusion Preview 01:36

Introduction Preview 01:32

Introduction to Java Streams Preview 05:39

Java 8 Streams Examples Preview 08:26

Spring Framework Reactive Streams Examples Preview 11:09

Conclusion Preview 01:35

Introduction to Spring WebFlux Preview 02:07

Initial Spring Boot Project Creation Preview 04:54

Quote Object Preview 04:06

Quote Generator Service Preview 09:13

Spring WebFlux Quote Handler Preview 04:36

Spring WebFlux Quote Router Preview 03:09

Streaming Quotes Preview 02:30

Testing Quote Service Preview 05:39

Spring WebFlux Quote Service on GitHub Preview 02:40

Conclusion Preview 01:45

Introduction Preview 01:08

Introduction to MongoDB Preview 06:40

Initial Spring Boot Project Creation Preview 04:19

Data Model Preview 03:39

Spring WebFlux Client Preview 04:29

Running Stock Quote Microservice Preview 02:42

Running MongoDB Preview 04:17

QuoteRunner Preview 04:02

QuoteMonitorService Preview 04:44

Creating Capped Collections in MongoDB Preview 01:43

Tailable Cursors with MongoDB Preview 06:04