This course encompasses topics and technologies related to enterprise application integration. This hands-on training teaches how to apply Spring to solve integration problems that face server-side developers.

Course Duration: 5 days
Course Objectives:

At the end of the training, you will have gained an understanding of Spring and associated technologies for enterprise integration in the form of task scheduling, accessing and defining Web Services, asynchronous JMS message integration, Spring Integration and Spring Batch.

Course Outline:
  • Tasks and Scheduling
    • Overview of java.util.concurrent
    • Executors and Queues
    • ThreadPools and Queue options
    • Callable vs. Runnable
    • Using a Future
    • TaskExecutor, SimpleAsyncTaskExecutor, SyncTaskExecutor, ConcurrentTaskExecutor, SimpleThreadPoolTaskExecutor, TimerTaskExecutor
    • Spring Configuration with XML and Scheduling Executors
    • Annotations @Scheduled and @Async
  • Remoting
    • Exporters and Proxy Factories to expose and access Remote Resources
    • RMI, Hessian and HttpInvoker protocols
    • Accessing JAX-RPC and JAX-WS Web services
  • Java Management Extensions (JMX)
    • MBeans and MBeanExporter
    • Controlling the Management interface
    • Annotations and Configuration
    • Controlling the management interface
    • Notifications – Publishers and Listeners
  • SOAP Web Services with Spring-WS
    • Web services best practices
    • Contract First Web Services
    • SOAP and WSDL
    • Annotations – @Endpoint, @PayloadRoot, @RepsonsePayload, @RequestPayload
    • JDOM, DOM and JAXB services – Configuration and Definition
    • Publish a WSDL
    • Client access with WebServiceTemplate
    • Error handling
  • RESTful Web Services
    • Core REST concepts
    • REST support in Spring 3.x
    • Use Spring-MVC to create RESTful Web services and clients
    • REST specific annotations in Spring
    • Client access with HttpClient and/or RestTemplate
    • Using Spring in a JAX-RS Jersey application (core specification of JAX-RS)
  • Working with JMS
    • Sending and receiving messages using Spring JmsTemplate
      • Converters
      • Asynchronous receipt of messages – Message Driven POJO’s
      • Synchronous receipt of messages
      • MessageListeners and Adapters (Message listener containers)
      • Configuration namespace support
  • Introduction to Spring Integration
    • Lightweight messaging within Spring-based applications
    • Message Endpoints
    • Message Channels
    • Routers
    • Channel Interceptors
    • Channel types and polling
    • Working with MessagingTemplate
  • Spring Integration Advanced Features
    • Splitting and aggregating messages
    • Dispatcher configuration
    • XML support: XPath, XSLT, Object-XML mapping
    • Channel Adapter
    • Configuring Chains
    • Transformers
  • Introduction to Spring Batch
    • Spring Batch high-level overview
    • Architecture
    • Jon, JobInstance, JobExecution
    • Step and StepExecution
    • JobRepository and JobLauncher
    • ItemReader, ItemWriter, ItemProcessor
    • Configuration of a Job, JobRepository
  • Spring Batch – Advanced Topics
    • Transaction Configuration, Rollback and Commit
    • Query the JobRepository
    • Intercepting Step Execution with Listeners
    • Conditional Flows
    • The Stop Element