What you'll learn:
- Master Spring WebFlux: Learn how to build modern, scalable, and responsive web applications using Spring WebFlux.
- Embrace Reactive Programming: Understand the benefits of reactive programming for building efficient and scalable applications.
- Leverage R2DBC: Learn how to use R2DBC for reactive data access and improve application performance.
- Achieving High Performance & Scalability With HTTP2
- Build Reactive Controllers: Create reactive controllers with Spring WebFlux annotations and handle requests and responses efficiently.
- Implement Error Handling: Learn effective error handling strategies for a robust user experience.
- Use WebFilters for Pre-processing and Post-processing: Chain WebFilters for complex logic and share data effectively.
- Implement Streaming: Learn how to implement client-side and server-side streaming for optimized data transfer.
- Optimize for Performance: Use techniques like Gzip compression, HTTP connection pooling, and HTTP/2 to improve application performance.
- Master Integration Testing: Learn how to effectively test your Spring WebFlux applications using WebTestClient.
- Hands-On Learning: Learn through practical code examples and labs.
- Real-World Scenarios: Apply your knowledge to build real-world web applications.
- Expert Guidance: Learn from a seasoned instructor who specializes in Spring WebFlux.
Prerequisite: Knowledge on Reactive Programming.
Course Focus
This course provides a comprehensive introduction to Spring WebFlux, a framework for building highly scalable, resilient and responsive web applications using reactive programming principles.
What You'll Learn
Traditional vs Reactive APIs
How Reactive APIs are different from Traditional APIs.
Reactive Data Access R2DBC
Learn to connect to relational databases reactively using R2DBC drivers, create reactive repositories with Spring Data R2DBC, implement CRUD operations with reactive data access patterns, and effectively integration test your data access layer.
Running a throughput/efficiency test to demonstrate the power of R2DBC, its throughput and how it uses the system resources more efficiently compared to Spring Data JPA.
Building CRUD Operations
Master creating reactive controllers with Spring WebFlux annotations, handling requests and responses with Flux and Mono, integration testing your reactive controllers.
Error Handling Strategies
Discover techniques for managing exceptions within reactive pipelines using various operators. Learn how to return meaningful error responses for a robust user experience.
WebFilter/Interceptor Chaining
Explore how to implement WebFilters for pre-processing and post-processing requests and responses. Chain multiple WebFilters for complex logic, pass attributes from WebFilters to controllers, and share data effectively.
Functional Programming with WebFlux
Leverage the power of lambda expressions to write concise and readable code. Build reactive controllers with functional endpoints and understand the benefits of functional programming within WebFlux.
Building Reactive Clients
Learn to use WebClient to build reactive clients that consume external APIs using reactive streams and handle asynchronous responses efficiently in a non-blocking manner.
Streaming
Implement client-side streaming for uploading data as a stream using WebClient and explore backpressure handling for optimized data transfer.
Implement server-side streaming for downloading data as a stream using WebClient.
Implement Server-Sent Events (SSE) with Spring WebFlux to enable real-time data updates from server to client.
Optimizing for Performance
Gzip compression
HTTP connection pooling to optimize bandwidth usage and application scalability.
Leveraging HTTP/2 protocol for efficient communication (New!).
Integration Testing
Master integration testing with WebTestClient, combining testing practices into our learning process throughout the course.
Course Structure
Focus on practical code examples and demos tailored to each module's specific topic.
Hands-on labs to solidify your learning throughout the course.
Access to resources for further learning on both Spring WebFlux and prerequisite reactive programming concepts (articles, tutorials, official documentation).
By the end of this course, you'll be equipped with the knowledge and skills to build modern, performant, and scalable web applications using Spring WebFlux.
Note
A basic understanding of reactive programming is assumed as a prerequisite for this course.
Join this course to master Spring WebFlux and unlock the potential of reactive programming for developing highly performant and scalable microservices. Gain the skills necessary to build resilient, efficient, and real-time applications using Spring WebFlux's non-blocking and event-driven architecture.