Message Channels

While Message represents a container for information data, the channel represents the location where it is being sent. Simply put, the message ends up at a prespecified address called channel before being used by someone else. The sender and receiver will be encoded with the information of the channels. See Figure 2-2, depicting the Message channels. In Spring Integration, the channel is represented by a MessageChannel interface.

Message Channels

Figure 2-2. Message Channels

Declaring Channels

Spring Integration provides a declarative model to create channels so we don’t have to instantiate channels using Java classes. Declaring a channel is simple and straightforward, as shown in the following snippet:

<beans 
  xmlns:int="http://www.springframework.org/schema/integration"
  xsi:schemaLocation="http://www.springframework.org/schema/integration 
    http://www.springframework.org/schema/integration/spring-integration-2.1.xsd"
  ...
  >

  // declaratively creating a channel
  <int:channel id="newAccounts">
</beans>

Note that since the channels, along with other messaging components, are defined in the integration XML namespace, please make sure your XML file consists of the above namespaces.

Out of the box, the framework provides a few concrete implementations, such as QueueChannel, PriorityChannel, and RendezvousChannel. Although there are a few differences among all the channel implementations, the underlying ...

Get Just Spring Integration now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.