I recently attended a local Java User's Group on Spring Integration, on June 25, 2015.
Sam Alexander, the Enterprise Architect with Healthesystems was the presenter. He was a very knowledgable and engaging speaker. He was also very patient with the numerous questions that I asked. :-)
Although I have worked with multiple projects under the Spring umbrella since 2005 (Spring Core, Spring Data, Spring Security, Spring Web MVC), I had zero exposure to Spring Integration.
My notes from the presentation:
· Spring Integration is in the same space as Apache Camel. It is not an Enterprise Integration tool, it is really meant to help you write better code.
· It uses a Messaging style architecture. Here are some diagrams I drew during Sam’s presentation, converted from my handwritten notes to Visio.
· Keys are immutable but values can change.
· There are many ways to construct a Message.
There are 2 types of channels: Pollable, Subscribable
· Pollable – Point-to-point, buffer/queue capacity
· Subscribable – No buffer, multiple endpoint receivers
Adapters integrate with other systems. They can talk with Streams, File, JMS, MongoDB, even Twitter.
Can use SpEL (Spring Integration Language), XPath, XML Schema for validation.
Transformers handle serialization/deserialization somewhat differently than JMS. There are numerous out-of-box Transformers.
Trigger a Service when a message arrives.
Spring Integration is not an ESB (Enterprise Service Bus), not a BPM (Business Process Management) product.
Spring Integration is about Data Flow and Data Management, as opposed to ESBs which are for disparate applications.