Kurs om
Spring Batch

Kurs om hur du skriver batch applikationer med Spring Batch

Batch applikationer innebär att behandla en stor mängd data sekventiellt utan interaktion eller avbrott. Exempel är att beräkna månatliga bank sammanställningar, aggregera månatliga fakturor för en tjänst och maila dessa som PDF till respektive kund och mycket mera.

Spring Batch är ett ramverk, byggt ovanpå Spring Framework, som tillhandahåller alla man behöver för att designa robusta och skalbara batch applikationer.

Denna kurs lär dig allt om item-readers, item-processor, item-writers, tasklets och mycket mer, så att du direkt efter kursen kan komma igång med att designa egna batch applikationer.

Snabbfakta

Namn
Spring Batch
Längd
2 dagar
Nivå
Advanced
Målgrupp
Java Spring programmerare
Förkunskaper
Kunnande motsvarande vår grundkurs i Spring Framework/Boot
Programvara & Verktyg
  • Java JDK 11, eller senare - Maven || Gradle - JetBrains IntelliJ IDEA || MS Visual Code - SDKMAN

Detta får du lära dig på kursen

Här är ett sammandrag i punktform av vad du får lära dig på kursen. Eftersom kursmaterialet är författat på engelska, så återger vi sammandraget också på engelska.

  • Förstå hur en batch applikation är uppbyggd
  • Kunna läsa och skriva till CSV, FLV, XML, JSON filer
  • Kunna läsa och skriva till databaser, på ett effektivt sätt
  • Designa transaktionella affärsoperationer i Spring Batch

Kursdatum

Här ser du vilka kursdatum som är tillgängliga. Klicka på en av datumknapparna för att anmäla dig till ett kurstillfälle. På kursen pratar läraren svenska, medan vårt kursmaterial alltid är författat på engelska.

Missa inte vår samfaktureringsrabatt! Är ni fler personer från samma företag/organisation som går på samma kurs, rabatteras tillkommande personer med 25%. Ni anmäler er till kursen en och en, men uppger samma företag, så ordnar vi resten. Samtliga deltagare från samma företag ingår på samma faktura, den första till fullt pris och resterande till rabatterat pris.

Klassrum

Du sitter bekvämt i ett av våra klassrum, vilka finns centralt placerade i Stockholms innerstad.

I priset ingår tryckt kursmaterial (och som PDF), samt kaffe/te med smörgås på förmiddagen och kaffe/te med bulle på eftermiddagen.

Pris: 14 000 kr + moms

Fjärrkurs

Du sitter bekvämt framför datorn och deltar i kursen via internet. Vi använder programvaran Zoom för alla våra fjärrkurser.

I priset ingår kursmaterial som PDF.

Pris: 10 000 kr + moms

Företagsinternt

Om ni är tre eller fler personer från samma företag eller organisation, kan ni beställa en företagsanpassad kurs. Då håller vi kursen på ett datum som passar er. Antingen på plats i era lokaler eller som en fjärrkurs. Vi kan också hålla den muntliga framställningen på engelska.

Klicka på knappen nedan för att be om en offert.

Företagsanpassad Kurs

Kursinnehåll

Eftersom kursmaterialet är författat på engelska, så återger vi innehållet också på engelska.

Background & Overview

  • What is a batch application
  • Why Spring Batch was created
  • Why do we need Spring Batch

Kickstart Project

You will be following simple instructions and step-by-step build your first Spring Batch application. The purpose of this exercise is to show-case key components of a batch application.

Spring Batch Concepts

  • Job
  • Step
  • Job Repository
  • Job Instance
  • Job Parameters
  • Task-Oriented Steps vs. Item-Oriented Steps
  • Chunks and Transactions
  • Execution Context
  • Using Spring Initializr to create a Batch project
  • Program structure
  • Essential Spring beans

Task-Oriented Steps

  • What is a task-oriented step
  • Tasklets
  • System command tasklet
  • Invoking existing business methods

Launching Jobs

  • Understanding @EnableBatchProcessing
  • Understanding BatchConfigurer
  • How is a Job (normally) launched
  • How to launch a selected set of Jobs
  • Bean names vs. Job names
  • Bean names vs. Configuration names
  • How to trigger a job to launch
  • What is a TaskExecutor
  • Sample demo and its configiration
  • How to launch a job from a REST controller
  • How to periodically launch a job, using a Spring scheduler
  • How to launch a job, when a new file appear in a directory
  • Sample directory watcher

Item-Oriented Steps

  • The different parts of a step
  • Setting the chunk size
  • Using the step-builder

Item Processing

  • What is item processing
  • Filtering items
  • Validating items
  • Declarative domain object validation
  • Bean Validation API
  • Chaining several item-processors

Flat Files

  • What is a flat-file format
  • File-file records
  • Flat-file fields
  • Understanding the FlatFileItemReader
  • LineMapper
  • LineTokenizer
  • FieldSetMapper
  • BeanWrapperFieldSetMapper
  • Converters & ConversionServices
  • understanding the FlatFileItemWriter
  • LineAggregator
  • FieldExtractor
  • BeanWrapperFieldExtractor

CSV Files

  • Character Separated Values (CSV)
  • Sample domain class
  • Reading a CSV file with FlatFileItemReader
  • Writing a field-set mapper
  • Using a bean-wrapper field-set mapper
  • Using a builder to create a FlatFileItemReader
  • Writing to a CSV file with FlatFileItemWriter
  • Writing a field-extractor
  • Using a bean-wrapper field-extractor
  • Using a builder to create a FlatFileItemWriter

FLV Files

  • Fixed Length Values (FLV)
  • How Batch supports FLV
  • FixedLengthTokenizer
  • Sample FLV item reader
  • FormatterLineAggregator
  • Sample FLV item writer

JSON Files

  • JavaScript Object Notation (JSON)
  • JSON support in Batch
  • The Jackson JSON framework
  • Sample domain class annotations
  • Sample domain class converters
  • Using JsonItemReaderBuilder
  • Using JsonItemWriterBuilder

XML Files

  • Extensible Markup Language (XML)
  • XML support in Batch
  • DOM, SAX, StAX, OXM, ...
  • Spring OXM
  • JAXB
  • Jaxb2Marshaller
  • JAXB annotations
  • Sample JAXB annotatated domain class
  • MVN dependencies
  • Using StaxEventItemReaderBuilder
  • Using StaxEventItemWiterBuilder

Database Items

  • Database item readers & writers
  • DB ItemReader classes
  • DB ItemWriter classes
  • Understanding JdbcCursorItemReader
  • Using JdbcCursorItemReaderBuilder, with a row-mapper
  • Using JdbcCursorItemReaderBuilder, with a bean-mapper
  • Understanding JdbcBatchItemWriter
  • Using a JdbcBatchItemWriterBuilder with a prepared-statement setter
  • Using a JdbcBatchItemWriterBuilder with a bean setter

What is new in Spring Batch v5

  • Java features supported
  • Support for GraalVM
  • Factories become builders