Spring Boot 4-microservices en REST-API's · Les

De basis van Mono en Flux

Begrijp reactieve publishers.

Les 1 van 413 stappen

De basis van Mono en Flux is een gratis Spring Boot 4-microservices en REST-API's-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Spring Boot 4-microservices en REST-API's. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Spring Boot 4-microservices en REST-API's bevat in totaal 4 lessen.

Wat is reactief programmeren

Reactief programmeren draait om het bouwen van niet-blokkerende, asynchrone toepassingen die gegevensstromen verwerken.

In plaats van rechtstreeks een waarde terug te geven, retourneert een reactieve methode een publisher die in de loop van de tijd gegevens uitzendt. De aanroeper abonneert zich om deze te ontvangen.

  • Threads worden niet geblokkeerd terwijl ze op I/O wachten
  • Ideaal voor diensten met veel gelijktijdige verzoeken en lage latentie

Project Reactor

Spring WebFlux is gebouwd op Project Reactor, dat twee belangrijke typen publishers biedt:

  • Mono<T> — zendt 0 of 1 item uit
  • Flux<T> — zendt 0 tot N items uit

Beide implementeren de Publisher-interface van Reactive Streams.

Een Mono maken

Een Mono stelt één asynchroon resultaat voor, of een leeg resultaat. Gebruik Mono.just() voor een bekende waarde en Mono.empty() als er geen waarde is.

Mono<String> mono = Mono.just("Hello");
Mono<String> empty = Mono.empty();
mono.subscribe(value -> System.out.println(value));

Een Flux maken

Een Flux zendt meerdere items uit. Bouw er een op basis van waarden, een iterable of een bereik.

Flux<String> flux = Flux.just("a", "b", "c");
Flux<Integer> range = Flux.range(1, 5);
flux.subscribe(item -> System.out.println(item));

Er gebeurt niets vóór subscribe

Publishers zijn lui. De pipeline doet niets totdat iets zich abonneert.

Het aanroepen van map() of filter() beschrijft alleen het werk. De gegevens stromen pas wanneer subscribe() wordt aangeroepen.

Flux<Integer> flux = Flux.range(1, 3)
    .map(i -> i * 10);
// no output yet
flux.subscribe(System.out::println); // now it runs

Transformeren met map

map past een synchrone functie toe op elk uitgezonden item en transformeert elk item naar precies één ander item.

Flux<String> names = Flux.just("alice", "bob")
    .map(name -> name.toUpperCase());
names.subscribe(System.out::println);

Items filteren

filter behoudt alleen items die overeenkomen met een predicaat.

Flux<Integer> evens = Flux.range(1, 10)
    .filter(n -> n % 2 == 0);
evens.subscribe(System.out::println);

Een Mono uit een Supplier

Gebruik Mono.fromSupplier() om de uitvoering van een functie die een waarde oplevert uit te stellen tot het moment van abonneren.

Mono<Long> now = Mono.fromSupplier(() -> System.currentTimeMillis());
now.subscribe(t -> System.out.println("Time: " + t));

Fouten afhandelen

Reactieve pipelines signaleren fouten als een terminale gebeurtenis. Gebruik onErrorReturn om een terugvalwaarde te leveren.

Mono<Integer> result = Mono.just("abc")
    .map(Integer::parseInt)
    .onErrorReturn(-1);
result.subscribe(System.out::println); // -1

Callbacks voor subscribe

De volledige vorm van subscribe accepteert drie callbacks: onNext, onError en onComplete.

Flux.just(1, 2, 3)
    .subscribe(
        item -> System.out.println("Next: " + item),
        error -> System.err.println("Error: " + error),
        () -> System.out.println("Done")
    );

Blokkeren voor tests

In tests of eenvoudige main-methoden kun je reactieve typen met block() of blockFirst() omzetten in blokkerende typen.

Vermijd block() in productiecode met reactieve werking — daarmee ondermijn je het niet-blokkerende model.

String value = Mono.just("Hi").block();
Integer first = Flux.range(1, 5).blockFirst();

Korte controle

Test je begrip van Mono en Flux.

Samenvatting

Je hebt de grondbeginselen van reactief programmeren met Project Reactor geleerd:

  • Mono zendt 0 of 1 item uit; Flux zendt 0 tot N items uit
  • Publishers zijn lui — er wordt niets uitgevoerd totdat subscribe() wordt aangeroepen
  • map en filter beschrijven transformaties
  • onErrorReturn levert terugvalwaarden
Gratis beginnen

Leer Java met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
24
Lessen
93

Veelgestelde vragen

Is de les “De basis van Mono en Flux” gratis?

Ja — de volledige tekst van “De basis van Mono en Flux” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Spring Boot 4-microservices en REST-API's wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Spring Boot 4-microservices en REST-API's bevat in totaal 4 lessen.

Wat leer ik in “De basis van Mono en Flux”?

Begrijp reactieve publishers. Je oefent met Spring Boot 4-microservices en REST-API's door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Spring Boot 4-microservices en REST-API's te beginnen?

Ervaring vooraf is niet nodig. Spring Boot 4-microservices en REST-API's op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “De basis van Mono en Flux”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Spring Boot 4-microservices en REST-API's?

Ja. Elke les over Spring Boot 4-microservices en REST-API's bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. De basis van Mono en Flux
  2. Reactieve controllers
  3. WebClient voor reactieve aanroepen
  4. Backpressure en operators
← Terug naar Spring Boot 4-microservices en REST-API's