Reactive Applications With Spring Webflux Framework
Published 12/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.42 GB | Duration: 7h 6m
Published 12/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.42 GB | Duration: 7h 6m
Creating a Secure, Reactive and non-blocking REST API with Spring WebFlux
What you'll learn
What Reactive Programming is
Architecture of Reactive Spring Boot application
Create Reactive Spring Boot application
Write and read from a database in reactive/non-blocking way
Use Spring Security in reactive Spring WebFlux application
Implement user authentication in reactive application
Implement JWT authentication in reactive application
Create and validate JSON Web Tokens(JWT)
Use method-level security annotations
Write Spring Security Expressions(SpEL)
Requirements
Basic knowledge of Java
Basic familiarity with Spring Framework
Description
In this video course you will learn how to create Reactive and Non-blocking applications with Spring WebFlux framework. This course is perfect for beginners and will start with the basics of Spring WebFlux.You will learn: - What Reactive programming is and how it is different from an imperative programming style, - The key differences between the traditional, blocking Spring WebMVC and the non-blocking, Reactive Spring WebFlux applications,- To create reactive RESTful Web Service application that handles different types of HTTP requests, - Write and read information from a database in a reactive, non-blocking way.As you progress through the course, you will learn how to: - Use Spring Security to protect your Spring WebFlux application, - Implement user login(authentication), - Generate and use JSON Web Tokens (JWT) for secure communication- Validate JWT and read token claims, - Use method-level security annotations to perform authorization. You will also learn how to add pagination and read database records in smaller chunks to improve performance.All important concepts are explained using simple, easy-to-follow slides. The source code is provided, so you can download it and follow along with each lesson.This course also includes helpful quiz questions to test your knowledge as you go. Plus, there is an active Q&A section where you can get answers to all your questionsBy the end of this course, you’ll be able to create fast, secure, and scalable Reactive applications with Spring WebFlux.
Overview
Section 1: Introduction
Lecture 1 Introduction
Section 2: Introduction to traditional(Blocking) Applications
Lecture 2 Traditional(Blocking) applications
Lecture 3 Traditional(Blocking) Thread per Request Architecture
Lecture 4 Solutions to Thread per Request Problem
Section 3: Introduction to Reactive Programming
Lecture 5 Spring Framework and Reactive Streams Specification
Lecture 6 Introduction to Reactive programming
Lecture 7 Introduction to Data Streams
Lecture 8 Back pressure
Lecture 9 Data Streams - A quick demo
Lecture 10 Reactive Application Overview
Lecture 11 Introduction to Spring WebFlux
Section 4: Creating a Reactive Spring Boot application project
Lecture 12 IntelliJ IDEA Ultimate edition licence
Lecture 13 Creating a new Reactive Spring Boot project
Lecture 14 Configure H2 database support in Reactive Spring Boot application
Lecture 15 Creating a Database schema
Lecture 16 Configuration class to start and stop H2 console web server
Lecture 17 Login to H2 database
Section 5: Presentation layer: Accept HTTP request and return HTTP response
Lecture 18 Introduction to presentation layer
Lecture 19 @RestController: Creating and configure the RestController class
Lecture 20 @PostMapping: Handle HTTP Post request
Lecture 21 @RequestBody: Reading HTTP Request Body
Lecture 22 @Validated: Validating HTTP Request body
Lecture 23 Trying if validation works
Lecture 24 Mono: Returning a single String value in HTTP Response body
Lecture 25 Mono: Returning a User object in HTTP Response body
Lecture 26 ResponseEntity: Returning custom HTTP status code
Lecture 27 @GetMapping: Handle HTTP GET Request
Lecture 28 Flux: Returning multiple objects in HTTP Response body
Lecture 29 @RequestParam: Reading URL Query String Parameters
Section 6: Data layer: Working with a database
Lecture 30 Introduction to data layer
Lecture 31 Creating database schema for Users table
Lecture 32 Creating User Entity class
Lecture 33 Spring Data R2DBC: Creating ReactiveCrudRepository
Section 7: Service layer: Business logic
Lecture 34 Introduction to Service layer in Reactive Spring WebFlux application
Lecture 35 Creating a Service class
Lecture 36 Implementing the createUser() method
Lecture 37 Invoke createUser() method from a method in the Rest Controller class
Lecture 38 Create User: Trying how it works
Lecture 39 Returning Details of a Single User
Lecture 40 Get User: Trying how it works
Section 8: List all users. Pagination in Reactive Spring WebFlux REST application.
Lecture 41 Data layer: Find all records + pagination.
Lecture 42 Service layer: Find all records + pagination.
Lecture 43 Presentation layer: Find all records + pagination.
Lecture 44 Trying how it works
Lecture 45 Enabling SQL Query Logging in reactive Spring WebFlux application
Section 9: Error Handling in Reactive Spring WebFlux applications
Lecture 46 Handling one specific exception with onErrorMap() in Spring WebFlux
Lecture 47 Handling multiple exceptions with onErrorMap() in Spring WebFlux
Lecture 48 Introduction to Global Exception Handling in Spring
Lecture 49 @RestControllerAdvice and @ExceptionHandler in reactive application
Lecture 50 Trying how Controller Advice works
Lecture 51 Formatting Bean validation errors in Spring WebFlux application
Lecture 52 Trying how custom bean validation error responses work in Spring WebFlux
Section 10: Unprotected API endpoints - Security Security in Reactive WebFlux.
Lecture 53 Adding Spring Security to reactive Spring WebFlux application
Lecture 54 @EnableWebFluxSecurity and Spring Security configuration class
Lecture 55 Granting access to public API endpoints in reactive Spring WebFlux application
Lecture 56 Trying how it works
Section 11: Encrypting User's Password - Spring Security in Reactive Spring WebFlux.
Lecture 57 Encrypting user's password with BCryptPasswordEncoder
Lecture 58 Trying if password encryption works
Section 12: Implement User Authentication(Login). Spring Security in Reactive Spring WebFlux
Lecture 59 Creating Authentication Request class
Lecture 60 Creating /login API endpoint
Lecture 61 Accessing /login API endpoint
Lecture 62 Reactive UserDetailsService
Lecture 63 Reactive AuthenticationManager
Lecture 64 Creating Authentication Service
Lecture 65 Implementing authenticate() method
Lecture 66 Invoke AuthenticationService from AuthenticationController
Lecture 67 Register Reactive Authentication Manager with Authentication Filter
Lecture 68 Trying if authenticate() method works
Lecture 69 onErrorReturn - Handle Unsuccessful User Authentication
Lecture 70 Other onError operators
Lecture 71 Global Error Handling - Handle Unsuccessful User Authentication
Lecture 72 Handle Unsuccessful User Authentication - Trying how it works
Section 13: Generating JSON Web Token(JWT)
Lecture 73 Introduction to JWT Authentication in reactive Spring WebFlux applications
Lecture 74 Adding JWT dependencies
Lecture 75 Creating Service class for generating and validating JWT
Lecture 76 Generating JWT access token
Lecture 77 Previewing JWT Access token
Section 14: Validating JSON Web Token(JWT) in Reactive Spring WebFlux applications
Lecture 78 Creating reactive JWT Authentication Filter
Lecture 79 Extracting JWT from HTTP request
Lecture 80 Validating JWT access token in Reactive Spring WebFlux application
Lecture 81 Handle Successful or Unsuccessful JWT Authentication
Lecture 82 Extracting Subject claim from JWT token
Lecture 83 Adding JWT Authentication Filter to the Spring Security filter chain
Lecture 84 Trying how JWT Authentication works in Reactive Spring WebFlux REST API
Section 15: Method-level Security in Reactive Spring WebFlux applications
Lecture 85 Authentication vs Authorization
Lecture 86 Enable Method-level Security in Reactive Spring WebFlux application
Lecture 87 @PreAuthorized annotation
Lecture 88 Trying how @PreAuthorize annotation works
Lecture 89 Handle AuthorizationDeniedException
Lecture 90 @PostAuthorized annotation
Lecture 91 Trying how @PostAuthorize annotation works
Java developers interested in learning how to create reactive applications with Spring Framework