Spring Batch-jobb och steg
Strukturera batchbearbetning i 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 enhetenStep= 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:
Jobinnehåller ordnadeStepsJobBuilder/StepBuilderbygger ihop dem- Chunk-steg läser-bearbetar-skriver i transaktioner; tasklet-steg utför enstaka arbetsenheter
JobParametersidentifierar enJobInstanceoch möjliggör omkörningar
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
- Schemaläggning med @Scheduled
- Spring Batch-jobb och steg
- Läsare, processorer och skrivare
- Omstart och felhantering