Reactive Programming with Spring Framework 5

Reactive Programming with Spring Framework 5

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 136 lectures (12h 38m) | 4.79 GB

Learn Reactive Programming with Spring Framework 5!

NOTE: This 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.

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
Table of Contents

Course Introduction
1 Introduction
2 Getting the Most Out of Your Course
3 Setting Up Your Development Environment
4 GitHub Workflow
5 Course Slack Channel
6 Is Your IDE Free Like a Puppy
7 Free 120 Day IntelliJ IDEA Trial!

Introduction to Reactive Programming
8 Introduction to Reactive Programming
9 Reactive Manifesto
10 What is Reactive Programming
11 Reactive Streams
12 Create Spring Boot Project
13 Implement Reactive Repository
14 Mono Operations
15 Flux Operations
16 Filtering Flux Objects
17 Reactive Step Verifier

Netflux Reactive Example
18 Introduction
19 Create New Project
20 Create Domain Model and Repositories
21 Initializing Data With Command Line Runner
22 Create Service Layer
23 Create Spring MVC Controller
24 Streaming Events

Spring Web Client
25 Introduction
26 What is Functional Programming
27 RestTemplate vs Web Client
28 Beer Project Overview
29 Creating WebClient
30 WebClient Get Operations
31 Using Query Parameters
32 Netty Client Request Logging
33 Using URL Parameters
34 Post Operations
35 Put Operations
36 Delete Operations
37 Exception Handling
38 Reactive Threading

Spring WebFlux
39 Introduction
40 Reactive Brewery Overview
41 Update Maven Dependencies
42 WebTestClient
43 Update Get Beer to Reactive Type
44 Update Remaining Operations

R2DBC
45 Introduction
46 Overview of Spring Data R2DBC
47 Maven Dependencies
48 Initializing Database
49 Refactor Get Beer By Id
50 Refactor List Beers
51 Refactor Create New Beer
52 Refactor Update Beer
53 Refactor Update Beer Not Found
54 Refactor Delete Beer

Functional Endpoints with Spring WebFlux
55 Introduction
56 Introduction to Functional Endpoints
57 Get Beer by Id
58 Create New Beer
59 Validate Save New Beer
60 Update Beer
61 Update Beer Not Found
62 Delete Beer

Reactive Streams
63 Introduction
64 Initial Project Creation
65 Quote Object
66 Quote Generator Service
67 Testing with Lamdas
68 WebFlux Quote Handler
69 WebFlux Quote Router

Reactive MongoDB Application
70 Introduction
71 Overview of Reactive Mongo
72 Initial Project Review
73 Data Model
74 Stock Quote Generator Service
75 Stock Quote History Service
76 Quote Runner

Reactive RabbitMQ Application
77 Introduction
78 Overview of Reactive RabbitMQ
79 Initial Project Review
80 Stock Quote Generator Service
81 Message Sender Configuration
82 Send Stock Quote to Queue
83 Read Stock Quote from Queue

DEPRECATED – Introduction to Reactive Programming with Spring Framework 5
84 Introduction to Reactive Programming with Spring Framework 5
85 Instructor Introduction – John Thompson, Spring Framework Guru
86 Free 120 Day IntelliJ Trial!
87 Using GitHub
88 Code Examples in GitHub

DEPRECATED – Introduction to Reactive Programming
89 Introduction
90 Reactive Manifesto
91 What is Reactive Programming
92 Reactive Streams
93 Reactive Programming Examples with Spring
94 Conclusion

DEPRECATED – Netflux Example Spring Reactive Application
95 Introduction
96 Create a New Spring Boot Project
97 Create Domain Model
98 Creating Spring Data Reactive Repositories
99 Initializing Data With Spring Boot Command Line Runner
100 Create Service Layer
101 Create Rest Endpoint
102 Running The Reactive Spring Boot Application
103 Conclusion

DEPRECATED – Introduction to Functional Programming in Java
104 Introduction
105 What is Functional Programming
106 Functional Programming Examples
107 Closures, Effectively Final and Lazy Evaluation
108 Conclusion

DEPRECATED – Using Java Streams
109 Introduction
110 Introduction to Java Streams
111 Java 8 Streams Examples
112 Spring Framework Reactive Streams Examples
113 Conclusion

DEPRECATED – Spring WebFlux Quote Service
114 Introduction to Spring WebFlux
115 Initial Spring Boot Project Creation
116 Quote Object
117 Quote Generator Service
118 Spring WebFlux Quote Handler
119 Spring WebFlux Quote Router
120 Streaming Quotes
121 Testing Quote Service
122 Spring WebFlux Quote Service on GitHub
123 Conclusion

DEPRECATED – Reactive MongoDB Quote Application
124 Introduction
125 Introduction to MongoDB
126 Initial Spring Boot Project Creation
127 Data Model
128 Spring WebFlux Client
129 Running Stock Quote Microservice
130 Running MongoDB
131 QuoteRunner
132 QuoteMonitorService
133 Creating Capped Collections in MongoDB
134 Tailable Cursors with MongoDB

Appendix A – Using GitHub
135 GitHub Basics
136 GitHub Workflow

Homepage