Dasar-Dasar Mono dan Flux
Pahami publisher reaktif.
Dasar-Dasar Mono dan Flux adalah pelajaran Spring Boot 4 Microservices & REST APIs gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Spring Boot 4 Microservices & REST APIs, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Spring Boot 4 Microservices & REST APIs mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
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
Belajar Java dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 24
- Pelajaran
- 93
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dasar-Dasar Mono dan Flux” gratis?
Ya — teks lengkap “Dasar-Dasar Mono dan Flux” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Spring Boot 4 Microservices & REST APIs, upgrade ke CoddyKit PRO. Kursus Spring Boot 4 Microservices & REST APIs mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Dasar-Dasar Mono dan Flux”?
Pahami publisher reaktif. Kamu berlatih Spring Boot 4 Microservices & REST APIs dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Spring Boot 4 Microservices & REST APIs?
Tidak diperlukan pengalaman sebelumnya. Spring Boot 4 Microservices & REST APIs di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Dasar-Dasar Mono dan Flux” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Spring Boot 4 Microservices & REST APIs ini?
Ya. Setiap pelajaran Spring Boot 4 Microservices & REST APIs menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar-Dasar Mono dan Flux
- Controller Reaktif
- WebClient untuk Pemanggilan Reaktif
- Backpressure dan Operator