Conceptos básicos de Mono y Flux
Comprenda los publishers reactivos
Conceptos básicos de Mono y Flux es una lección gratuita de Spring Boot 4 Microservices & REST APIs en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Spring Boot 4 Microservices & REST APIs, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Spring Boot 4 Microservices & REST APIs incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
What is Reactive Programming
Reactive programming is about building non-blocking, asynchronous applications that handle streams of data.
Instead of returning a value directly, a reactive method returns a publisher that emits data over time. The caller subscribes to receive it.
- Threads are not blocked waiting for I/O
- Great for high-concurrency, low-latency services
Project Reactor
Spring WebFlux is built on Project Reactor, which provides two core publisher types:
Mono<T>— emits 0 or 1 itemFlux<T>— emits 0 to N items
Both implement the Reactive Streams Publisher interface.
Creating a Mono
A Mono represents a single (or empty) async result. Use Mono.just() for a known value and Mono.empty() for none.
Mono<String> mono = Mono.just("Hello");
Mono<String> empty = Mono.empty();
mono.subscribe(value -> System.out.println(value));Creating a Flux
A Flux emits many items. Build one from values, an iterable, or a range.
Flux<String> flux = Flux.just("a", "b", "c");
Flux<Integer> range = Flux.range(1, 5);
flux.subscribe(item -> System.out.println(item));Nothing Happens Until Subscribe
Publishers are lazy. The pipeline does nothing until something subscribes.
Calling map() or filter() only describes work. The data flows only when subscribe() is invoked.
Flux<Integer> flux = Flux.range(1, 3)
.map(i -> i * 10);
// no output yet
flux.subscribe(System.out::println); // now it runsTransforming with map
map applies a synchronous function to each emitted item, transforming it one-to-one.
Flux<String> names = Flux.just("alice", "bob")
.map(name -> name.toUpperCase());
names.subscribe(System.out::println);Filtering Items
filter keeps only items that match a predicate.
Flux<Integer> evens = Flux.range(1, 10)
.filter(n -> n % 2 == 0);
evens.subscribe(System.out::println);Mono from a Supplier
Use Mono.fromSupplier() to defer execution of a value-producing function until subscription time.
Mono<Long> now = Mono.fromSupplier(() -> System.currentTimeMillis());
now.subscribe(t -> System.out.println("Time: " + t));Handling Errors
Reactive pipelines signal errors as a terminal event. Use onErrorReturn to supply a fallback value.
Mono<Integer> result = Mono.just("abc")
.map(Integer::parseInt)
.onErrorReturn(-1);
result.subscribe(System.out::println); // -1Subscribe Callbacks
The full subscribe form accepts three callbacks: onNext, onError, and onComplete.
Flux.just(1, 2, 3)
.subscribe(
item -> System.out.println("Next: " + item),
error -> System.err.println("Error: " + error),
() -> System.out.println("Done")
);Blocking for Tests
In tests or simple mains you can convert reactive types to blocking ones with block() or blockFirst().
Avoid block() in production reactive code — it defeats the non-blocking model.
String value = Mono.just("Hi").block();
Integer first = Flux.range(1, 5).blockFirst();Quick Check
Test your understanding of Mono and Flux.
Recap
You learned the foundations of reactive programming with Project Reactor:
Monoemits 0 or 1 item;Fluxemits 0 to N- Publishers are lazy — nothing runs until
subscribe() mapandfilterdescribe transformationsonErrorReturnprovides fallbacks
Aprende Java con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 24
- Lecciones
- 93
Preguntas frecuentes
¿La lección «Conceptos básicos de Mono y Flux» es gratis?
Sí — el texto completo de «Conceptos básicos de Mono y Flux» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Spring Boot 4 Microservices & REST APIs, actualiza a CoddyKit PRO. El curso de Spring Boot 4 Microservices & REST APIs incluye 4 lecciones en total.
¿Qué aprenderé en «Conceptos básicos de Mono y Flux»?
Comprenda los publishers reactivos Practicas Spring Boot 4 Microservices & REST APIs con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Spring Boot 4 Microservices & REST APIs?
No se requiere experiencia previa. Spring Boot 4 Microservices & REST APIs en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Conceptos básicos de Mono y Flux»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Spring Boot 4 Microservices & REST APIs?
Sí. Cada lección de Spring Boot 4 Microservices & REST APIs incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Conceptos básicos de Mono y Flux
- Controladores reactivos
- WebClient para llamadas reactivas
- Backpressure y operadores