Spring Book – Chapter 20 – Spring Integration

Any modern application does not live in isolation. To realize the business requirements it has to communicate with customers of varied types and other applications in variety of ways. Application integration lets your application do this and in modern day applications, this is crucial for any application. Spring Integration aids in application integration that lets applications share data and services with each other making it connect with varied kind of users.

The Spring Integration is an open-source; simple integration framework that leverages the capabilities of widely adopted Spring Framework making application integration easy and simpler to implement.

This Chapter will help you start with Spring Integration and will aid you in achieving the various integration requirement in your application. I am sure after reading through this Chapter you will have one more weapon up your sleeves which you can use and reap benefits from its high level of integration capabilities.

Spring Integration Goals and Principles

Spring Integration is motivated by the following goals:

  • Provide a simple model for implementing complex enterprise integration solutions.
  • Facilitate asynchronous, message-driven behavior within a Spring-based application.
  • Promote intuitive, incremental adoption for existing Spring users.

Spring Integration is guided by the following principles:

  • Components should be loosely coupled for modularity and testability.
  • The framework should enforce separation of concerns between business logic and integration logic.
  • Extension points should be abstract in nature but within well-defined boundaries to promote reuse and portability.

The goals and principles of Spring Integration is as quoted in the Spring Integration Reference Manual.

Spring Integration Benefits

Spring Integration benefits can be summarized as follows:

  • Loose coupling between components – brings about development of small and focused components that caters to specific role and responsibility. This eases testing and promotes reuse largely.
  • Helps to separate integration and processing logic – Spring Integration pitches-in, handling message routing, transformation etc. and eases the application developer from this. Due to high level of configuration based integration style, easily processing can be switched between synchronous and asynchronous with no change in the code that is handy in this ever-changing business application scenario.
  • Promotes Event-driven architecture – No hard coded process flows and capability to easily change and expend these flows according to application requirement. Single word that can be used is adaptability.

Enterprise Integration Pattern (EIP)

Enterprise Integration Patterns is a book by Gregor Hohpe and Bobby Woolf and describes a number of design patterns for the use of enterprise application integration and message-oriented middleware. Enterprise Integration Patterns can be implemented without coding using Spring Integration or Apache Camel.

Enterprise application integration is an integration framework composed of a collection of technologies and services, which form a middleware to enable integration of systems and applications across the enterprise.

– wikipedia.org

Spring Integration brings the power of Dependency Injection (DI) that Spring Framework is well known for and EIP patterns implementation together to nicely manage the resources and lets you focus on business logic rather than messaging infrastructure code.

Spring Integration Namespaces

For easing the various integration style configurations, Spring Integration has dedicated namespaces for each of them. Table 22-1 gives details of Spring Integration namespace in a tabular form for easy reading and understanding.

Table 22-1. Spring Integration namespaces

Namespace URL Prefix Description
http://www.springframework.org/schema/integration int Main schema
http://www.springframework.org/schema/integration/file file Defines the configuration elements for Spring Integration File Adapters.
http://www.springframework.org/schema/integration/ftp ftp Defines the configuration elements for Spring Integration FTP Adapters.
http://www.springframework.org/schema/integration/http http Defines the configuration elements for Spring Integration’s HTTP adapters.
http://www.springframework.org/schema/integration/httpinvoker httpinvoker Defines the configuration elements for Spring Integration’s HttpInvoker adapters. NOTE: The http-invoker support is deprecated as of 2.0.x. It is recommended to use the REST-based HTTP adapters instead.
http://www.springframework.org/schema/integration/xml xml Defines the configuration elements for Spring Integration’s XML support.
http://www.springframework.org/schema/integration/jms jms Defines the configuration elements for Spring Integration’s JMS adapters.
http://www.springframework.org/schema/integration/ip ip Defines the configuration elements for Spring Integration’s IP adapters.
http://www.springframework.org/schema/integration/xmpp xmpp
http://www.springframework.org/schema/integration/twitter twitter
http://www.springframework.org/schema/integration/event event Defines the configuration elements for Spring Integration Event Adapters.
http://www.springframework.org/schema/integration/gemfire gemfire Defines the core configuration elements for Spring Integration GemFire Support.
http://www.springframework.org/schema/integration/groovy groovy
http://www.springframework.org/schema/integration/jdbc jdbc Defines the configuration elements for Spring Integration’s JDBC components.
http://www.springframework.org/schema/integration/jmx jmx Defines the configuration elements for Spring Integration’s JMX adapters.
http://www.springframework.org/schema/integration/mail mail Defines the configuration elements for Spring Integration’s Mail Channel Adapters.
http://www.springframework.org/schema/integration/redis redis Defines the configuration elements for Spring Integration Redis Adapters and Channels.
http://www.springframework.org/schema/integration/rmi rmi Defines the configuration elements for Spring Integration’s RMI adapters.
http://www.springframework.org/schema/integration/security security
http://www.springframework.org/schema/integration/sftp sftp Defines the configuration elements for Spring Integration SFTP Adapters.
http://www.springframework.org/schema/integration/stream stream Defines the configuration elements for Spring Integration Stream-based Channel Adapters.
http://www.springframework.org/schema/integration/ws ws Defines the configuration elements for Spring Integration’s Web Service adapters.

Page Visitors: 13409

The following two tabs change content below.
Tomcy John

Tomcy John

Blogger & Author at javacodebook
He is an Enterprise Java Specialist holding a degree in Engineering (B-Tech) with over 10 years of experience in several industries. He's currently working as Principal Architect at Emirates Group IT since 2005. Prior to this he has worked with Oracle Corporation and Ernst & Young. His main specialization is on various web technologies and acts as chief mentor and Architect to facilitate incorporating Spring as Corporate Standard in the organization.
Tomcy John

Latest posts by Tomcy John (see all)

2 thoughts on “Spring Book – Chapter 20 – Spring Integration

  1. Hi,
    Thanks for this blog and information sharing!
    I have one question from Spring Integration. Just thought of checking with you.
    I have SimplewebserviceOutBoundGateway. I need to send a document / attachment to the webservice. How will i achieve that?
    This is my current gateway configuration:

    Please let me know, if you can throw some light in this area.
    Thanks in Advance!

  2. Hi,
    Thank you for your information sharing.
    I have one doubt,could you please suggest me the correct frameworks to address that issue.

    My requirement is I would like to get and process files using spring and camel.


Leave a Reply

Your email address will not be published. Required fields are marked *