Duration
4 Days
24 CPD hours
This course is intended for
This in an intermediate-level Java development course geared for students
experienced with Java and Spring programming essentials. This course does not
cover Java or Spring development basics.
Overview
Working within in an engaging, hands-on learning environment, guided by our
expert team, attendees will:
Understand the ReactiveX specification
Understand the basics of Reactive Programming
Discuss the advantages and limitations of Observables
Write a client application capable of handling Reactive events
Apply operators to event streams to filter, modify and combine the objects
emitted by event publishers
Select the appropriate type of Event Source
Use both Cold and Hot Observables
Deal with backpressure problems in reactive programming
Develop a reactive web application using Spring WebFlux
Define application flows of a WebFlux application
Use the WebClient API to work with both synchronous and streaming APIs
Develop Unit and Integration tests to test WebFlux endpoints
Creating a reactive REST endpoint
Become familiar with the basics of WebSockets
Create a WebSocket endpoint using Spring
Create a WebSocket client
Understand the basics of NoSQL
Become familiar with the basics of MongoDB
Understand how the data in MongoDB can be retrieved using a Reactive API
Define Spring Data MongoDB repositories
Query the MongoDB using Spring Data
Define a reactive repository using MongoDB
Explore the Spring Data R2DBC API to perform reactive CRUD operations against a
relational database
Spring Data reative allow us to implement database operations relying on Reative
Programming APIs. While the Spring R2DBC initiative aims to bring reactive
programming to relational databaes, several NoSQL databases already provide this
possibility. After an introduction to NoSQL and the MongoDB, this courses covers
the APIs available to communicate with this NoSQL database using both blocking
and reactive APIs.Introdcution to Reactive Spring is a comprehensive Java
training workshop geared for experienced developers who wish to explore
concurrent, asynchronous and reactive programming APIs and techniques using
Spring. After an introduction to reactive programming, Reactive Streams and the
Project Reactor APIs, this course will show how this APIs are integrated into
Spring. Spring 5 includes Spring WebFlux, providing a reactive programming model
for web applications, including support for Reactive REST APIs. Spring WebSocket
assists in the creation of web applications which provide a full-duplex, two-way
communication between client and server.
INTRODUCTION TO REACTIVE PROGRAMMING
* Reactive Manifesto
* Introduce ReactiveX
* ReactiveX implementations
* The Observer, Iterator pattern and functional programming
* Discuss hot and cold publishers
REACTIVE STREAMS API
* Introduce the Reactive Streams specification
* Publisher and Subscribers
* java.util.concurrent.Flow
* Transformation of Messages (Processor)
* Controlling messages
* Tutorial: Setup Eclipse for Using Maven
INTRODUCTION
* Introduce the Reactor Building blocks
* Flux and Mono
* Creating observables
* Subscribing to a stream
TESTING EVENT SOURCES (INTRODUCTION)
* Testing reactive implementations
* StepVerifier : test sequence of emitted items
* Defining expectations
* TestPublisher: produce test data to test downstream operators
REACTIVE OPERATORS
* Introduce Operators
* Show the use of marble diagrams
* Explain some commonly used operators
* Callback operators
SCHEDULERS (MULTITHREADING)
* Thread usage of subscriber and consumer
* Using the subscribeOn method
* Introduce the Scheduler interface
* Using the observeOn method
BACKPRESSURE
* Strategies for dealing with Backpressure
* ?reactive pull? backpressure
EXCEPTION HANDLING
* Handling errors in onError
* Exception handling strategies
* Using onErrorReturn or onErrorNext operators
* Using the retry operators
* The Global Error Handler
SPRING DATA REVIEW
* Quick review of Spring Data repositories
* Query return types
* Defining Query methods
* Pagination and sorting
R2DBC
* Reactive Relational Database Connectivity
* DatabaseClient
* Performing CRUD operations
* Reactive Query annotated methods
SPRING WEBFLUX: INTRODUCTION
* Annotated Controllers
* Functional Endpoints
* WebFlux configuration
* Creating a reactive REST endpoint
DEFINING FLOWS
* Defining the application flow
* Actions
* Defining decision
* Navigating flows
* RouterFunction
VIEW TECHNOLOGIES
* View technologies
* Using Thymeleaf to create the view
* View Configuration
SPRING WEBCLIENT: INTRODUCTION TO WEBCLIENT
* Working with asynchronous and streaming APIs
* Making requests
* Handling the response
* Lab: WebClient
WEBTESTCLIENT
* Testing WebFlux server endpoints
* Testing controllers or functions
* Define integration tests
INTRODUCTION TO SPRING REACTIVE WEBSOCKETS
* Be familiar with the basics of WebSockets
* Understand the HTTP handshake and upgrade
* Name some of the advantages of WebSockets
DEFINING THE WEBSOCKET
* WebSocket Message Handling
* WebSocketSession
* Implementing the WebSockethandler
* Creating a Browser WebSocket Client
WEBSOCKET STOMP
* Streaming (or Simple) text-orientated messaging protocol
* Introduce SockJS
* Connecting to the STOMP endpoint
* Configuring the message broker
* STOMP destinations
REACTIVE WEBSOCKET
* Reactive WebSocket support
* Implement the reactive WebSocketHandler
BIGDATA
* Introduce Big Data
* Explain the need for enhanced data storage
INTRODUCTION TO MONGODB
* JavaScript Object Notation Overview
* Introduce Binary JSON (BSON)
* Starting the database
* Creating Collections and Documents
* Executing ?simple? database commands
* Introduce the ObjectID
* Searching for documents using query operators
* Updating and deleting documents
* MongoDB Compass
SPRING AND MONGODB
* MongoDB Support in Spring Data
* MongoClient and MongoTemplate
* Spring Data MongoDB configuration
* @EnableMongoRepositories
* Adding documents to the database
* The @Document and @Field annotations
* Polymorphism and the _class property
* The Criteria object
SPRING DATA MONGODB
* MongoRepository
* Field naming strategy
* Using JSON queries to find documents
* The @PersistenceConstructor annotation
REACTIVE REPOSITORIES WITH MONGODB
* Using reactive repositories
* ReactiveMongoTemplate
* RxJava or Reactor
ADDITIONAL COURSE DETAILS:
Nexus Humans Introduction to Reactive Spring (TT3355 ) training program is a
workshop that presents an invigorating mix of sessions, lessons, and
masterclasses meticulously crafted to propel your learning expedition forward.
This immersive bootcamp-style experience boasts interactive lectures, hands-on
labs, and collaborative hackathons, all strategically designed to fortify
fundamental concepts.
Guided by seasoned coaches, each session offers priceless insights and practical
skills crucial for honing your expertise. Whether you're stepping into the realm
of professional skills or a seasoned professional, this comprehensive course
ensures you're equipped with the knowledge and prowess necessary for success.
While we feel this is the best course for the Introduction to Reactive Spring
(TT3355 ) course and one of our Top 10 we encourage you to read the course
outline to make sure it is the right content for you.
Additionally, private sessions, closed classes or dedicated events are available
both live online and at our training centres in Dublin and London, as well as at
your offices anywhere in the UK, Ireland or across EMEA.