Asas Mono dan Flux
Fahami penerbit reaktif.
Asas Mono dan Flux ialah pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 4 pelajaran.
Apakah Pengaturcaraan Reaktif
Pengaturcaraan reaktif ialah pendekatan membina aplikasi tak menyekat dan tak segerak yang mengendalikan aliran data.
Daripada mengembalikan nilai secara langsung, kaedah reaktif mengembalikan penerbit yang memancarkan data mengikut masa. Pemanggil melanggan untuk menerimanya.
- Benang tidak disekat sementara menunggu I/O
- Sangat sesuai untuk perkhidmatan serentak tinggi dan kependaman rendah
Project Reactor
Spring WebFlux dibina berasaskan Project Reactor, yang menyediakan dua jenis penerbit teras:
Mono<T>— memancarkan 0 atau 1 itemFlux<T>— memancarkan 0 hingga N item
Kedua-duanya melaksanakan antara muka Reactive Streams Publisher.
Mencipta Mono
Mono mewakili satu hasil tak segerak atau hasil kosong. Gunakan Mono.just() untuk nilai yang diketahui dan Mono.empty() apabila tiada nilai.
Mono<String> mono = Mono.just("Hello");
Mono<String> empty = Mono.empty();
mono.subscribe(value -> System.out.println(value));Mencipta Flux
Flux memancarkan banyak item. Bina satu daripada nilai, boleh lelar, atau julat.
Flux<String> flux = Flux.just("a", "b", "c");
Flux<Integer> range = Flux.range(1, 5);
flux.subscribe(item -> System.out.println(item));Tiada Apa-apa Berlaku Sehingga Melanggan
Penerbit bersifat malas. Saluran paip tidak melakukan apa-apa sehingga sesuatu melanggan.
Memanggil map() atau filter() hanya menerangkan kerja yang perlu dilakukan. Data hanya mengalir apabila subscribe() dipanggil.
Flux<Integer> flux = Flux.range(1, 3)
.map(i -> i * 10);
// no output yet
flux.subscribe(System.out::println); // now it runsMengubah dengan map
map menggunakan fungsi segerak pada setiap item yang dipancarkan, lalu mengubahnya secara satu-ke-satu.
Flux<String> names = Flux.just("alice", "bob")
.map(name -> name.toUpperCase());
names.subscribe(System.out::println);Menapis Item
filter hanya mengekalkan item yang sepadan dengan predikat.
Flux<Integer> evens = Flux.range(1, 10)
.filter(n -> n % 2 == 0);
evens.subscribe(System.out::println);Mono daripada Supplier
Gunakan Mono.fromSupplier() untuk menangguhkan pelaksanaan fungsi yang menghasilkan nilai sehingga waktu langganan.
Mono<Long> now = Mono.fromSupplier(() -> System.currentTimeMillis());
now.subscribe(t -> System.out.println("Time: " + t));Mengendalikan Ralat
Saluran paip reaktif memberi isyarat ralat sebagai peristiwa terminal. Gunakan onErrorReturn untuk membekalkan nilai sandaran.
Mono<Integer> result = Mono.just("abc")
.map(Integer::parseInt)
.onErrorReturn(-1);
result.subscribe(System.out::println); // -1Panggilan Balik Langganan
Bentuk penuh subscribe menerima tiga panggilan balik: onNext, onError, dan onComplete.
Flux.just(1, 2, 3)
.subscribe(
item -> System.out.println("Next: " + item),
error -> System.err.println("Error: " + error),
() -> System.out.println("Done")
);Menyekat untuk Ujian
Dalam ujian atau kaedah main ringkas, anda boleh menukar jenis reaktif kepada jenis yang menyekat dengan block() atau blockFirst().
Elakkan block() dalam kod reaktif pengeluaran — tindakan itu menewaskan model tanpa sekatan.
String value = Mono.just("Hi").block();
Integer first = Flux.range(1, 5).blockFirst();Semakan Pantas
Uji pemahaman anda tentang Mono dan Flux.
Imbas Kembali
Anda telah mempelajari asas pengaturcaraan reaktif dengan Project Reactor:
Monomemancarkan 0 atau 1 item;Fluxmemancarkan 0 hingga N- Penerbit bersifat malas — tiada apa-apa dijalankan sehingga
subscribe() mapdanfiltermenerangkan perubahanonErrorReturnmenyediakan nilai sandaran
Pelajari Java dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 24
- Pelajaran
- 93
Soalan Lazim
Adakah pelajaran “Asas Mono dan Flux” percuma?
Ya — teks penuh “Asas Mono dan Flux” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Perkhidmatan Mikro dan API REST Spring Boot 4, tingkat taraf kepada CoddyKit PRO. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Asas Mono dan Flux”?
Fahami penerbit reaktif. Anda berlatih Perkhidmatan Mikro dan API REST Spring Boot 4 menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Perkhidmatan Mikro dan API REST Spring Boot 4?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Asas Mono dan Flux” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 ini?
Ya. Setiap pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.