Développer des applications réactives avec Spring WebFlux

Les applications Java accèdent très souvent à des données: requêtes vers une base de données, appels d'API, envois et réceptions de de messages; ce sont autant d'opérations I/O. Elles impliquent une latence et doivent être non bloquantes, condition nécessaire à la scalabilité de l'application.

Après avoir rappelé les relations entre threads et opérations I/O ce cours vous apprendra comment utiliser Spring WebFlux pour réaliser des applications non bloquantes.

En présentiel ou en classe virtuelle
En français ou en anglais
Public

Développeurs et développeuses Java, architectes

Accessible aux personnes en situation de handicap

Délai

Le cours peut être organisé dans un délai d'un mois.

Objectifs

A l'issue du cours vous saurez:

Prérequis

Ce cours demande une connaissance solide des bases de la programmation Java (principes de la programmation orientée objet, types génériques, annotations, expressions lambda), de Spring et Spring boot et une habitude de travailler avec Eclipse ou IntelliJ.

Méthodes pédagogiques

Programme détaillé

Introduction
async IO
  • Applications I/O bounded vs CPU bounded.
  • Opérations I/O: l'avantage de l'exécution non bloquante.
  • Le fonctionnement d'un event loop.
  • L'API reactive streams.
  • Comparaison des paradigmes publish / subscribe et request / response.
Les fondamentaux de la programmation réactive avec Reactor
Push / pull
  • Project reactor comme implémentation de l'API reactive streams.
  • La création d'un Flux et d'un Mono.
  • Les principaux opérateurs pour assembler un pipeline.
  • Les opérateurs side effects.
  • L'interopérabilité avec le code synchrone.
  • Le couplage avec Reactor - JUnit pour tester les applications réactives.

Mise en pratique: manipulation des principaux opérateurs des classes Mono et Flux.

La stack Spring WebFlux
Netty
  • R2DBC pour requéter des bases de données.
  • Le ReactiveTransactionManager pour la gestion des transactions.
  • Spring Data comme implémentation réactive du pattern Repository.
  • Le WebClient pour requéter des API réactives.
  • Le projet reactor-kafka pour les échanges réactifs avec un broker Kafka.

Mise en pratique: réalisation d'une API REST réactive accédant à une base de données et échangeant des messages avec un broker Kafka.

Prix et financements

2 12

Réduction de 50% pour les associations reconnues d'utilité publique.

Sources de financements pour les organisations françaises:

Contact

Questions, inscriptions, demande d'adaptation: