Expert Java EE and Spring Batch Processing


With the release of Java EE 7, batch processing was standardized and provided as a reference implementation based on the new specification “JSR 352 Java Batch”. The reference implementation of the JSR provides an implementation of JEE Batch integrated into Glassfish 4. In context of current legacy renewal and business transformation efforts, the ability to develop high-end, mission-critical batch jobs supporting extensive scalability and failure resiliency is essential for the success. Until now Spring Batch addressed those characteristics in a flexible and extensive way. With JSR 352 the core concepts were now standardized. This course will give an in-depth introduction to JSR 352 and Spring Batch providing a good foundation allowing architects to decide when to use JSR 352 or Spring Batch.

This course comprises of a set of independent skills modules which can be taken separately or as a whole. If required a custom course can be constructed from these modules and detailed module overview including the table of contents and learning goals of each module is available on request.

You Will Learn

Architects will be able to decide when batch processing should be used and what the architectural and design key considerations are. Engineers obtain a good conceptual foundation allowing them to design and implement jobs. Project Managers will gain an understanding of batch processing, how it differentiates from online processing and the complexity of background mass-data processing.

Foundation Pack

Foundation Packs are self-contained educational lessons including base concepts, code and lab samples. They provide the fundamentals of a subject matter which can be built on in later modules and reused in projects. This course comprises of a foundation pack for Java EE and Spring Batch Processing containing the following modules:

  • Introduction
    • Batch processing
    • Spring Batch and core module
  • Spring Batch Framework Basics:
    • Core Concepts and components
    • Understanding Job Identity and restart-ability
  • Job Basics:
    • Configuring Batch Jobs
    • Running Batch Jobs
  • Step Basics:
    • Tasklet Step
    • Chunk oriented step basics, configuration and component contract
    • Controlling step restart
    • Transaction configuration
  • Job (control) Flows:
    • Basic Job Lifecycle
    • Conditional and Programmatic Flows
    • Ending, Stopping and Failing of Job Flows
  • Error handling with Spring Batch:
    • Conceptual Basics
    • Spring Batch Error Handling (Filtering, Retrying and Skipping and its configuration)
  • Step Details:
    • Intercepting Step Execution with Listeners
    • Listener Transaction Semantics
    • Delegates and Composite Processing

Extension Packs

The following additional Extension Packs can be taken together with the foundation package or independently.

  • File Readers and Writers:
    • Reading and Writing flat (CSV, fixed-length, multiline) and XML files
  • Database Readers and Writers:
    • Cursor based vs. Paged reading
    • Reading and Writing using JDBC / JPA
  • Scale-out:
    • Scale-out options of Spring Batch
    • Multithreaded-Step
    • Parallel-Step
    • Remote Chunking
    • Partitioning

Target Skills


This is a list of the types of skills covered by this course