Spring Boot 4-mikrotjenester og REST-API'er · Lektion

Serverless-funktioner med Spring Cloud

Udforsk, hvordan De bygger og implementerer serverless-funktioner ved hjælp af Spring Cloud Function.

Lektion 2 af 311 trin

Serverless-funktioner med Spring Cloud er en gratis Spring Boot 4-mikrotjenester og REST-API'er-lektion på CoddyKit. Dette er lektion 2 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Spring Boot 4-mikrotjenester og REST-API'er, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Spring Boot 4-mikrotjenester og REST-API'er-kurset indeholder 3 lektioner i alt.

Hvad er serverløse funktioner?

Serverløse funktioner (også kaldet Functions as a Service eller FaaS) er små kodestykker med ét formål, som kører som reaktion på hændelser, uden at du behøver at administrere servere.

  • Du betaler kun for den anvendte beregningstid.
  • Du behøver ikke bekymre dig om klargøring eller skalering af servere.
  • Fokusér udelukkende på din kodelogik.

Introduktion til Spring Cloud Function

Spring Cloud Function er et framework, der hjælper dig med at skrive forretningslogik som Java-typer fra java.util.function (Supplier, Function, Consumer).

Det smarte er, at du skriver din funktion én gang, hvorefter Spring Cloud Function gør den implementerbar på forskellige serverløse platforme som AWS Lambda, Azure Functions eller Google Cloud Functions med minimale ændringer.

Supplier: Intet input, kun output

En Supplier er en funktion, der ikke tager nogen argumenter, men producerer et resultat. Tænk på den som en datakilde eller en generator.

  • Den implementerer java.util.function.Supplier<T>.
  • Den har en enkelt metode: T get().
  • Nyttig til polling, planlagte opgaver eller generering af indledende data.

Din første Supplier-funktion

Dette eksempel viser en simpel Supplier, der returnerer en hilsen. Annotationen @Bean eksponerer den som en Spring Cloud Function.

Prøv at køre den for at se outputtet!

import java.util.function.Supplier;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class SupplierApp {

    public static void main(String[] args) {
        // Run Spring Boot application context
        ConfigurableApplicationContext context = SpringApplication.run(SupplierApp.class, args);
        // Get the supplier bean and invoke its 'get' method
        Supplier<String> helloSupplier = context.getBean("helloSupplier", Supplier.class);
        System.out.println(helloSupplier.get());
        context.close(); // Clean up context
    }

    @Bean
    public Supplier<String> helloSupplier() {
        return () -> "Hello from CoddyKit Serverless!";
    }
}

Function: Fra input til output

En Function er en mapping fra én type til en anden. Den tager et argument og producerer et resultat.

  • Den implementerer java.util.function.Function<T, R>.
  • Den har en enkelt metode: R apply(T t).
  • Perfekt til datatransformation, behandling af forespørgsler eller anvendelse af forretningslogik.

Transformér data med en Function

Her tager vores upperCaseFunction en String og returnerer dens version med store bogstaver. Det demonstrerer en simpel datatransformation.

Kør koden, og se, hvordan inputtet ændres!

import java.util.function.Function;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class FunctionApp {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(FunctionApp.class, args);
        Function<String, String> upperCaseFunction = context.getBean("upperCaseFunction", Function.class);
        String input = "coddykit serverless";
        String output = upperCaseFunction.apply(input);
        System.out.println("Input: " + input);
        System.out.println("Output: " + output);
        context.close();
    }

    @Bean
    public Function<String, String> upperCaseFunction() {
        return value -> value.toUpperCase();
    }
}

Consumer: Input, intet output

En Consumer er en funktion, der tager et argument, men ikke producerer noget resultat. Den bruges til at udføre en handling eller sideeffekt.

  • Den implementerer java.util.function.Consumer<T>.
  • Den har en enkelt metode: void accept(T t).
  • Ideel til logning, lagring af data, afsendelse af notifikationer eller udløsning af andre processer.

Behandl data med en Consumer

Denne printerConsumer tager en String og udskriver den ganske enkelt til konsollen. Den forbruger dataene uden at returnere noget.

Se, hvordan meddelelsen behandles!

import java.util.function.Consumer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class ConsumerApp {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(ConsumerApp.class, args);
        Consumer<String> printerConsumer = context.getBean("printerConsumer", Consumer.class);
        String message = "Processing complete for this event!";
        System.out.println("Consuming message...");
        printerConsumer.accept(message);
        context.close();
    }

    @Bean
    public Consumer<String> printerConsumer() {
        return value -> System.out.println("Received and processed: " + value);
    }
}

Implementeringsuafhængighed

Spring Cloud Functions vigtigste styrke er dens implementeringsuafhængighed. Du skriver din funktion én gang ved hjælp af standardiserede Java-interfaces, og frameworket leverer adaptere, så den kan køre på forskellige serverløse platforme.

Det betyder, at du ikke er bundet til en bestemt cloududbyders API, hvilket gør din kode mere portabel og fremtidssikret.

Kontrol af funktionstype

Hvilken type Spring Cloud Function er designet til at tage et input og producere et transformeret output?

Opsummering: Serverløse funktioner og Spring Cloud Function

Vi har undersøgt serverløse funktioner og set, hvordan Spring Cloud Function gør det muligt at skrive portabel forretningslogik.

  • Serverløs betyder, at fokus er på kode, ikke infrastruktur.
  • Spring Cloud Function bruger interfacene Supplier, Function og Consumer.
  • Disse funktioner kan implementeres på forskellige FaaS-platforme, hvilket giver stor fleksibilitet.

Denne tilgang forenkler udviklingen og øger dine mikrotjenesters portabilitet.

Gratis at komme i gang

Lær Java med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
24
Lektioner
93

Ofte stillede spørgsmål

Er lektionen “Serverless-funktioner med Spring Cloud” gratis?

Ja — hele teksten til “Serverless-funktioner med Spring Cloud” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Spring Boot 4-mikrotjenester og REST-API'er-kurset, skal du opgradere til CoddyKit PRO. Spring Boot 4-mikrotjenester og REST-API'er-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Serverless-funktioner med Spring Cloud”?

Udforsk, hvordan De bygger og implementerer serverless-funktioner ved hjælp af Spring Cloud Function. Du øver dig i Spring Boot 4-mikrotjenester og REST-API'er med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Spring Boot 4-mikrotjenester og REST-API'er?

Der kræves ingen tidligere erfaring. Spring Boot 4-mikrotjenester og REST-API'er på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 3.

Hvor lang tid tager lektionen “Serverless-funktioner med Spring Cloud”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Spring Boot 4-mikrotjenester og REST-API'er-lektion?

Ja. Alle Spring Boot 4-mikrotjenester og REST-API'er-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Implementering i en Kubernetes-klynge
  2. Serverless-funktioner med Spring Cloud
  3. CI/CD-pipeline til mikrotjenester
← Tilbage til Spring Boot 4-mikrotjenester og REST-API'er