EInnovator - Enterprise Spring Training
EInnovator - Education - Core Spring

Enterprise Spring

Course Overview

Enterprise Spring is a 4-day trainer lead course that teaches how to use Spring Framework, Spring Integration, Spring Batch, and Spring XD to build enterprise integration solutions.

Completion of this training prepares participants to take a certification exam and become a Pivotal certified Enterprise Integration Specialist .


  • Use Spring to create concurrent applications and schedule tasks
  • Use remoting to implement client-server applications
  • Use Spring Web services to create loosely coupled SOAP-based Web services and clients
  • Use Spring-MVC to create RESTful Web services and clients
  • Use JMS for asynchronous messaging-based communication
  • Understand and use local and distributed transactions
  • Use Spring Integration to create event-driven pipes-and-filters architectures and integrate with external applications
  • Use Spring Batch for managed, scalable batch processing that is based on both custom and built-in processing components

Course Format and Modes of Delivery

  • Four days of instructor-led training
  • 50% lecture, 50% hands-on lab
  • Corporate On-Site
  • Public
  • Online

Target Audience

  • Developers
  • Architects


  • Experience with developing applications using Java
  • Basic understanding of Spring


Course Modules

  • Styles of enterprise integration — Pros/Cons, Spring Support
  • File transfer, Shared DB, Remoting, and Web-Services
  • Introduction to concurrency
  • Java Concurrency APIs
  • Spring task scheduling support — XML Namespace
  • @Scheduled and @Async annotations
  • Core REST concepts
  • REST-WS support in Spring MVC
  • Implementing REST-WS Controllers with Spring MVC
  • Consuming REST-WS with Spring’s RestTemplate
  • Out-of-container Testing
  • Introduction to Messaging Middleware and JMS API
  • Configuring JMS resources with Spring
  • Sending and Receiving messages using Spring JmsTemplate
  • Asynchronous Reception with Spring MessageListenerContainers
  • Why use JMS transactions
  • JMS Acknowledges modes
  • Transactional JMS resources with Spring
  • Duplicate message handling
  • Two-phase commit and XA
  • JTA and Spring
  • Configuring JtaTransactionManager
  • Transaction demarcation
  • Goals of Spring Integration
  • Core components of Spring Integration
  • Defining channels, message endpoints, and gateways
  • Spring Integration XML namespaces
  • Eclipse-based Visual Editor for Spring Integration
  • Channel types and polling
  • Synchronous and asynchronous handoff
  • Synchronous and asynchronous error handling
  • Advanced endpoint types: bridge and router
  • Working with MessagingTemplate
  • Splitting and aggregating messages
  • Dispatcher configuration
  • XML support: XPath, XSLT, Object-XML mapping
  • Spring Integration Java DSL
  • Batch Processing Overview
  • Spring Batch concepts — Jobs, Steps, JobInstances, JobExecutions
  • Working with jobs, steps, readers, and writers
  • Job parameters and job identity
  • Batch State DB persistence
  • Readers, Writers & Processors
  • Quick start using Spring Batch
  • JDBC Item Readers
  • ExecutionContext abstraction — Stateful ItemReaders and Item Writers
  • Reading flat files
  • Recovery Strategies — Skip, Retry, Repeat, and Restart
  • Spring Batch listeners
  • Using Spring Batch DSL for Java Configuration
  • Business logic delegation and integration
  • The Spring Batch Admin Web console
  • Scaling and parallel processing
  • Multithreaded and parallel steps
  • Partitioning
  • Distributed Batch Processing
  • Introduction to Real-time Event-Processing and IoT
  • Spring XD Runtime
  • Installing Spring XD
  • Spring XD Streams DLS — Sources, Sinks, and Processors
  • Data Ingestion and Export with Spring XD
  • Launching Jobs with Spring XD
  • Spring XD Web Console — Flow
  • Spring Cloud DataFlow — Cluster/Cloud Deployments
  • Web-Services best practices
  • Introduction to Spring Web services
  • Object-XML mapping with the Spring OXM abstraction layer
  • Client access with WebServiceTemplate
  • Error handling
  • Out-of-container testing
  • Limitations of “plain” RMI
  • Benefits of using Spring Remoting
  • Spring remoting over RMI
  • Spring HttpInvoker
  • Hessian and Burlap support