Rientrato dalle ferie, sono pronto per partire con la mia personale rubrica di Java Pills! 🎉 Per scaldare i motori, iniziamo con qualcosa di leggero ma decisamente utile sulla programmazione reattiva.
🔍 Perché usare doOnNext?
Il metodo doOnNext di WebFlux è utilizzato per eseguire delle azioni secondarie per ogni elemento che viene emesso da un publisher, come un Flux o un Mono, senza alterare il flusso di dati. È spesso usato per operazioni di logging, aggiornamenti di metadati, side-effect o altre azioni che devono essere eseguite per ogni elemento emesso.
Esempio: immagina di dover aggiornare la targa di un'auto.
Codice originale (non ottimale):
Mono.just(licensePlate)
.map(plate -> {
sampleCar.setLicensePlate(plate);
return plate;
})
.map(plate -> ...);
Codice migliorato usando il costrutto doOnNext:
Mono.just(licensePlate)
.doOnNext(sampleCar::setLicensePlate)
.map(plate -> ...);
L'uso di doOnNext in questo contesto migliora la leggibilità e la manutenibilità del codice, rendendo più evidente che sampleCar.setLicensePlate è una conseguenza dell'emissione del valore e non una trasformazione del valore stesso!