Spring WebFlux è un reactive-stack web framework aggiunto a Spring a partire dalla versione 5.0 per superare alcuni limiti di Spring Web MVC e supportare completamente lo sviluppo di Web Application di tipo non-blocking, vale a dire che ogni chiamata è un flusso non bloccante ed asincrono all’interno dell’applicazione. A ciò Spring WebFlux aggiunge la capacità di utilizzare i Reactive Streams e di essere disponibile su server che supportano la tecnologia non-blocking come Netty e Undertow.
Perchè Spring WebFlux
Spring e più in generale il back end su Servlet già rendeva disponibili delle API di tipo non-blocking ma non era sufficiente perchè le stesse erano inserite in un contesto blocking e sincrono, per es. con getParameter. Spring WebFlux quindi nasce come nuovo framework per riunire tutte le funzionalità in ambito non-blocking e mantenere il passo dei nuovi paradigmi in cui le Web Application lavorano esclusivamente in maniera asincrona e non-blocking.
Al motivo precedente si aggiunge la necessità di ottenere il functional programming, un tipo di programmazione dichiarativo fondato sulle annotations anche in controller REST e negli Unit Test divenuto popolare grazie anche a ReactiveX. In pratica da Java 8 è possibile, con Spring WebFlux, fornire web endpoint in stile dichiarativo con le annotazioni sui controller non-blocking.
Gli elementi descritti aprono la strada verso i concetti di Reactive e di Micro Web Services perchè Spring WebFlux permette di realizzare applicazioni che reagiscono dinamicamente, per es. a notifiche del back end, e che sono scalabili, multi-thread e modulari.
Le caratteristiche principali di Spring WebFlux
Oltre a quanto descritto nel precedente paragrafo, Spring WebFlux ti fornisce le seguenti funzionalità:
- supporto di Reactive Streams e dei concetti di Publisher e Subscriber;
- supporto allo sviluppo reactive grazie alla libreria Reactor;
- possibilità di essere usato con le Coroutines API di Kotlin;
- possibilità di utilizzare i paradigmi classici MVC insieme ai nuovi di functional programming;
- completamente integrato in Spring e con possibilità di essere usato in maniera complementare o parallela a Spring MVC;
- resilienza ai carichi di lavoro grazie alla possibilità di scalare in maniera predittiva;
- integrazione con Spring Boot per lo start/stop dei server.
Glue Labs e Spring WebFlux
Ti forniamo formazione avanzata, consulenza specialistica, assistenza e supporto per qualsiasi tuo progetto con Spring WebFlux e Java Framework. Grazie all’esperienza maturata in tantissimi settori, con numerosi Clienti e con un solido gruppo aziendale ti garantiamo le competenze per assisterti e supportarti per qualsiasi tuo progetto di sviluppo e nella realizzazione di applicazioni con garanzia 12 mesi da qualsiasi bug. Contattaci subito e senza impegno per maggiori informazioni.