0% ont trouvé ce document utile (0 vote)
8 vues19 pages

Portfolio

Ce document présente une introduction à la programmation réactive avec Spring Boot 3, en expliquant les concepts clés tels que les flux de données, les observables et les observateurs. Il compare la programmation réactive à la programmation non réactive, en soulignant ses avantages et inconvénients, ainsi que les stratégies de gestion des erreurs. Enfin, il aborde l'utilisation de Spring WebFlux pour le développement d'applications réactives et fournit des exemples d'opérateurs utilisés dans ce contexte.

Transféré par

salma benmiled
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues19 pages

Portfolio

Ce document présente une introduction à la programmation réactive avec Spring Boot 3, en expliquant les concepts clés tels que les flux de données, les observables et les observateurs. Il compare la programmation réactive à la programmation non réactive, en soulignant ses avantages et inconvénients, ainsi que les stratégies de gestion des erreurs. Enfin, il aborde l'utilisation de Spring WebFlux pour le développement d'applications réactives et fournit des exemples d'opérateurs utilisés dans ce contexte.

Transféré par

salma benmiled
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PROGRAMMATION

RÉACTIVE AVEC SPRING


BOOT 3
20/11/2023
Plan
01 Introduction Springboot

02 La programmation réactive

03 Programmation réactive VS non réactive

04 Avantage - Incovénients de la programmation réactive

05 Stratégie de gestion des erreurs

06 Spring Web Flux

07 Création du projet

08 Conclusion

2
Introduction
Spring Boot est un framework conçu
pour simplifier le développement
d'applications Java. Il offre un
environnement prêt à l'emploi,
réduisant la configuration nécessaire
pour démarrer un projet.

Image 1

3
Programmation réactive
La programmation réactive est un paradigme de
développement logiciel centré sur la création
d'applications capables de gérer efficacement
les flux de données asynchrones.

Image 2

4
Image 3
Image 2

5
Flux de données
Un flux, dans le contexte de la programmation
réactive, désigne une séquence continue
d'événements qui se produit dans le temps.
Ces flux peuvent émettre trois types principaux
d'événements :
Valeur
Erreur
Signal de "terminé"

Image 4

6
Observateur/Observable en Programmation
Réactive
Observable
Des sources de données dynamiques représentant
tout ce qui évolue au fil du temps. Ils émettent
des éléments à des instants variés, formant ainsi
un flux de données en constante évolution.

Observateurs
Des composants du code qui réagissent aux
événements émis par les observables.
Image 5

7
Backpressure
Le Backpressure se réfère à la gestion de la
quantité de données.
Il permet à l'observateur de demander à
l'observable de ralentir ou de contrôler la
production de données pour éviter toute
surcharge ou perte de données lorsque le
Image 6
récepteur ne peut pas traiter les données aussi
rapidement qu'elles sont émises.

8
Programmation réactive VS Programmation
non réactive
Caractéristiques Programmation réactive Programmation non réactive

Basé sur un modèle traditionnel, souvent


Axé sur la réactivité, les flux de données
Modèle de Programmation séquentiel et orienté sur les opérations
asynchrones et les opérations non bloquantes.
bloquantes.

Limite du nombre de demandes simultanées au


Capacité de Traitement des Capable de gérer un grand nombre de demandes nombre de threads dans le pool, risque de
Requêtes simultanées sans bloquer le fil d’exécution,. ralentissements ou de rejets de demandes si le
pool est saturé.

Utilise généralement moins de mémoire grâce à la Peut entraîner une utilisation excessive de la
Utilisation de la Mémoire gestion efficace des threads et à l'utilisation mémoire si des threads sont bloqués en
d'opérations non bloquantes. attendant des E/S ou des opérations longues.

Tableau 1
9
Les avantages de la programmation
réactive
Réactivité en temps Gestion asynchrone Compatibilité
Réel des événements multiplateforme

Réagit instantanément aux Permet de gérer efficacement les Les concepts de programmation
événements et aux changements, événements asynchrones. Elle offre réactive peuvent être appliqués dans
offrant des interfaces utilisateur des outils pour traiter les différents environnements de
plus dynamiques et une meilleure événements et les changements de développement, y compris sur le
expérience utilisateur. manière efficace et sans bloquer le Web, les applications mobiles, les
programme. systèmes embarqués ..

10
Les inconvénients de la programmation
réactive
Complexité accrue Intégration avec des Difficulté de débogage et
de l'écriture du code bibliothèques ou des de traçabilité

La programmation réactive
systèmes existants Comme les opérations sont
introduit des concepts nouveaux Les composants ou bibliothèques asynchrones et basées sur des flux de
tels que les flux de données, les ne sont pas nécessairement conçus données, le débogage peut être plus
opérations asynchrones... Pour ceux pour être compatibles avec un complexe. Suivre la logique du flux
qui ne sont pas familiers avec ces modèle réactif, ce qui peut de données ou des événements peut
concepts, écrire du code réactif entraîner des problèmes être difficile, ce qui rend le débogage
peut être plus complexe. d'intégration et de compatibilité. et la traçabilité des problèmes plus
complexes.

11
Stratégies de Gestion des Erreurs dans les
Applications Réactives
Propagation des Erreurs Traitement des Erreurs Répétition des Opérations

Les erreurs sont propagées le long de Les observateurs peuvent gérer les Certaines bibliothèques réactives
la chaîne du flux de données. erreurs en utilisant des méthodes offrent des mécanismes pour répéter
Lorsqu'une erreur survient dans un spécifiques fournies par les les opérations qui ont échoué en
flux, elle est transmise aux bibliothèques réactives. raison d'une erreur temporaire,
observateurs. Cela permet de gérer les onError(Throwable error) offrant ainsi une approche de
erreurs rapidement et de prendre des doOnError(Consumer<Throwable> récupération des erreurs.
mesures appropriées. onError) ReactiveX.

12
Spring WebFlux
Spring WebFlux est un framework réactif conçu pour
le développement d'applications basées sur des
principes réactifs dans l'écosystème Spring de Java. Il
propose une approche réactive pour la création
d'applications Web, permettant de gérer
efficacement les flux de données asynchrones.
Image 7

13
Flux et Mono dans Spring WebFlux

Mono Flux
Représente un résultat unique, Représente une séquence de zéro à
une erreur, ou aucun résultat. plusieurs éléments émis de manière
asynchrone.

Image 8 Image 9

14
Exemples d’operateurs dans Spring WebFlux

Opérateurs Programmation réactive

Map Modification des éléments du flux

Filter Filtrage des éléments du flux

FlatMap Transformation et émission de flux imbriqués

Zip Combinaison de plusieurs flux en un seul flux

Merge Fusion de plusieurs flux en un seul flux

Tableau 2

15
Création de l’application
réactive

Image 11
Image 10

16
Conclusion

17
Source
Textes et tableaux : Chatgpt
Image 1 : https://www.tutorialandexample.com/spring-boot-architecture
Image 2 : https://blog.ouidou.fr/la-programmation-r%C3%A9active-12f342cef911
Image 3,4,6 : https://fr.slideshare.net/AhmedAbdulAziz47/reactive-programming-intro
Image 5 : https://www.youtube.com/watch?v=WTZOGQYsdqE&t=560s

Image 7 : https://www.youtube.com/watch?v=WTZOGQYsdqE&t=560s
Image 8,9 : https://blog.knoldus.com/reactive-programming-using-spring-mvc-and-webflux/
Image 10,11 : https://start.spring.io/;

18
Merci pour votre
attention !

Vous aimerez peut-être aussi