Spring Boot 4-mikrotjänster och REST API:er · Lektion

Spring Batch-jobb och steg

Strukturera batchbearbetning i steg.

Lektion 2 av 413 steg

Spring Batch-jobb och steg är en gratis lektion i Spring Boot 4-mikrotjänster och REST API:er på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Spring Boot 4-mikrotjänster och REST API:er, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Spring Boot 4-mikrotjänster och REST API:er innehåller totalt 4 lektioner.

Vad är Spring Batch?

Spring Batch är ett ramverk för robust batchbearbetning av stora datamängder: läsning, transformering och skrivning av data i bulk med inbyggd transaktionshantering, chunk-bearbetning och möjlighet till omstart.

  • ETL-jobb, migreringar och nattliga rapporter
  • Hanterar miljontals poster på ett tillförlitligt sätt

Lägga till beroendet

Lägg till spring-boot-starter-batch. Spring Batch behöver en datasource för att lagra metadata om körningar av jobb och steg.

<!-- Maven -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-batch</artifactId>
</dependency>

Grundbegrepp: Job och Step

Ett Job är hela batchprocessen. Det består av ett eller flera Steps som körs i ordningsföljd. Varje Step utför en arbetsfas.

  • Job = den övergripande enheten
  • Step = en fas (läs-bearbeta-skriv eller en tasklet)

JobRepository och metadata

JobRepository sparar körningstillstånd i databastabeller (BATCH_JOB_EXECUTION, BATCH_STEP_EXECUTION...). Detta möjliggör omstart och förhindrar att en slutförd jobbinstans körs igen.

Definiera ett Job med JobBuilder

Använd JobBuilder för att bygga ihop ett jobb. Ange ett namn, en JobRepository och ett första steg.

@Bean
public Job importJob(JobRepository repo, Step step1) {
    return new JobBuilder("importJob", repo)
            .start(step1)
            .build();
}

Definiera ett Step med StepBuilder

StepBuilder bygger ett steg. Ett chunk-baserat steg deklarerar indata- och utdatatyp, chunkstorlek samt läsare, processor och skrivare.

@Bean
public Step step1(JobRepository repo,
                  PlatformTransactionManager tx,
                  ItemReader<String> reader,
                  ItemWriter<String> writer) {
    return new StepBuilder("step1", repo)
            .<String, String>chunk(10, tx)
            .reader(reader)
            .writer(writer)
            .build();
}

Chunk-baserad bearbetning

Chunk-bearbetning läser poster en i taget, samlar dem upp till chunkstorleken och skriver sedan hela chunken i en enda transaktion. Om chunken misslyckas rullas allt tillbaka tillsammans.

  • läs 10 poster -> bearbeta varje post -> skriv 10 -> verkställ

Tasklet-steg

Använd ett Tasklet-steg i stället för läsare/skrivare för en enda arbetsenhet, till exempel att ta bort en fil eller köra en lagrad procedur.

@Bean
public Step cleanupStep(JobRepository repo, PlatformTransactionManager tx) {
    return new StepBuilder("cleanup", repo)
            .tasklet((contribution, context) -> {
                deleteTempFiles();
                return RepeatStatus.FINISHED;
            }, tx)
            .build();
}

Kedja flera steg

Kör steg i ordningsföljd med .next(). Jobbet går vidare till nästa steg endast om det föregående lyckas.

@Bean
public Job pipeline(JobRepository repo, Step extract, Step transform, Step load) {
    return new JobBuilder("etl", repo)
            .start(extract)
            .next(transform)
            .next(load)
            .build();
}

JobParameters

En JobInstance identifieras av sitt namn tillsammans med JobParameters. Olika parametrar, till exempel ett datum, skapar separata instanser, vilket gör att du kan köra om ett jobb för en ny dag.

JobParameters params = new JobParametersBuilder()
        .addString("runDate", "2026-05-30")
        .toJobParameters();
jobLauncher.run(importJob, params);

Starta jobb i Spring Boot

Som standard kör Spring Boot alla definierade jobb vid uppstart. Inaktivera detta med spring.batch.job.enabled=false och starta manuellt via JobLauncher när du behöver kontroll, till exempel enligt ett schema.

Snabb kontroll

Kontrollera hur väl du behärskar strukturen för Job och Step.

Sammanfattning

Du förstår nu batchmodellen:

  • Job innehåller ordnade Steps
  • JobBuilder / StepBuilder bygger ihop dem
  • Chunk-steg läser-bearbetar-skriver i transaktioner; tasklet-steg utför enstaka arbetsenheter
  • JobParameters identifierar en JobInstance och möjliggör omkörningar
Gratis att börja

Lär dig Java med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
24
Lektioner
93

Vanliga frågor

Är lektionen ”Spring Batch-jobb och steg” gratis?

Ja – hela texten till ”Spring Batch-jobb och steg” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Spring Boot 4-mikrotjänster och REST API:er, kan Ni uppgradera till CoddyKit PRO. Kursen i Spring Boot 4-mikrotjänster och REST API:er innehåller totalt 4 lektioner.

Vad lär jag mig i ”Spring Batch-jobb och steg”?

Strukturera batchbearbetning i steg. Ni övar på Spring Boot 4-mikrotjänster och REST API:er med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Spring Boot 4-mikrotjänster och REST API:er?

Du behöver inga förkunskaper. Utbildningen i Spring Boot 4-mikrotjänster och REST API:er på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Spring Batch-jobb och steg”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Spring Boot 4-mikrotjänster och REST API:er-lektionen?

Ja. Varje Spring Boot 4-mikrotjänster och REST API:er-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Schemaläggning med @Scheduled
  2. Spring Batch-jobb och steg
  3. Läsare, processorer och skrivare
  4. Omstart och felhantering
← Tillbaka till Spring Boot 4-mikrotjänster och REST API:er