Reactive Programming with Java9 & Spring 5

מק"ט: #6976 | משך קורס: 16 שעות אק'
| מספר מפגשים: 2

Reactive programming is more and more relevant, as concurrencies grows and data streaming becomes the favorite way to integrate with DBs and Web. The traditional 'Request-Oriented' way of handling client requests causes serious back-pressure and requires lot of computing power in order to supply enough threads. Reactive programming solves this issue by splitting and forking requests in a transparent manner which allows limited number of threads to handle multiple requests. This is mostly addresses the new 'Task-Oriented' approach which also fully supported in HTTP2.
This course explores the building blocks of Reactive Programming in general, and the need. The course then relates to Java 9 Flow API and focuses on practical reactive programming with Spring 5 WebFlux (Flux & Mono). The course allows you to define reactive services, use reactive REST web-services and work reactively with NoSQL (MongoDB).  

*שדות חובה
PDF version

קהל יעד

  • Java developers that wants to master reactive programming
  • Some background in Java 8 Functional programming
  • Spring developers that wants to exploit Spring5 reactive capabilities
  • Developers that wants to build HTTP2 compliant, Reactive REST web-services
  • Developers that wants to build Reactive applications 

תנאי קדם

  • Experience in basic Java & Spring
  • Some background in REST
  • Some experience in working with SpringMVC & SpringBoot 


Introduction to reactive programming

  • What is?
  • The need
  • Back-pressure
  • Data streaming
  • Evolution in Java (7,8,9)


  • Introduction
  • Flow
  • Publisher
  • Subscriber
  • Processors
  • Signals & signal types

Spring Reactive Programming

  • Supported implementations
  • Installing / setting environment
  • Mono API
  • Flux API
  • From Mono to Flux
  • From Flux to Mono
  • Parallel Flux
  • Connectable Flux

Spring WebFlux

  • Introduction
  • SpringBoot2 configuration
  • Relevance to HTTP2
  • SpringMVC vs WebFlux
  • Reactive controllers
  • Browser support

Reactive DAO

  • Introduction
  • SpringBoot2 configuration
  • Reactive MongoDB
  • Reactive Spring Repositories
  • Creating reactive services