Spring Batch 3

This course is currently not scheduled on the open calendar, but can be organized on request.

Number of days

3 day(s)

Audience

Developers and architects who want to start building batch processes with Spring Batch.

Prerequisites

Participants should have a good understanding of Java and the Spring framework.

Objectives

After completing this course, participants can work efficiently with Spring Batch framework.

Methods

Classroom training with hands-on exercises

Description

Most enterprises need to deal with large processing volumes one way or the other. These can be based on flat files, xml files, databases, or customized solutions. No matter how these are implemented, they have one thing in common: they are critical to the business. In many cases, these processes do not require any user interaction and can be periodically scheduled.

Spring Batch is a framework that targets exactly these types of processes. Being part of the Spring Framework stack, it is a lightweight solution that reuses all of the Spring concepts, and integrates seamlessly with its components. By defining a common terminology (Jobs, Steps, Chunks, …) one can model business processes easily in a format that can be executed by Spring Batch. In doing so, all of its reliability features become accessible; it is possible to have a structured way to deal with failures, retries, canceling and transactional concerns. More demanding processes might even be configured to run distributed to allow the highest scalability. All of this can be monitored and controlled using Spring Batch Admin; a UI-based administration client.

With this course, RealDolmen targets developers and architects that want to get started using Spring Batch. Since its terminology is not always obvious, and the problems involved far from trivial, mastering batch processing can be challenging. Think about idempotency, global transactions, rollback strategies, etc… for example.

At RealDolmen, we strongly believe in a mixed style of teaching: interleaving presentations with practical hands-on exercises. This allows participants to comfortably familiarize themselves with complicated and highly technical subjects. Together with the expertise of the trainers this is the best guarantee for participants to get the most out of their learning experience.

Contents

  • Introduction
    • What is a batch application?
    • Spring Batch concepts and terminology
      • Jobs
      • Steps
      • Items
      • Tasklets
      • Chunks
      • Readers
      • Writers
      • Processors
      • Executions
    • Infrastructure
      • Configuring a database
    • Quickstart example
  • Configuring Spring Batch
    • XML vocabulary overview
    • Creating jobs and steps
    • Creating a JobRepository
    • Scopes
    • Listeners
    • Inheritance
  • Running jobs
    • Conceptual overview
    • Stand-alone launchers
    • Scheduling
    • Integration with web-applications
    • Shutdown procedure
  • Reading and writing
    • Dealing with Flat files
    • Dealing with XML files
    • Dealing with databases
    • Dealing with JMS
    • Dealing with business services
    • Dealing with email
    • Creating custom readers and writers
  • Processing
    • Processing items and chunks
    • Transformations
    • Filtering
    • Sequencing
  • Reliability
    • Skipping
    • Retrying
    • Restarting
  • Transaction management
    • Configuring transactions
    • When to rollback
    • Duplicate messages
    • Idempotency
    • The Best-effort pattern
    • Global transactions
  • Controlling execution
    • Controlling batch flows
    • Sharing data
    • Using the exit status
    • Cancelling jobs
  • Scalability and concurrency
    • Multithreading
    • Partitioning
    • Distributing batch processes
  • Testing
    • Unit testing
    • Integration testing
    • Functional testing