Spring Integration — Message

In this example, we’ll use Spring Integration basics — Message.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.oreilly.integration</groupId>
<artifactId>spring-integration</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>spring-integration</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

PrintService.java

import java.util.Map.Entry;

import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;

public class PrintService {

public void print(Message<String> message){
MessageHeaders headers = message.getHeaders();

for(Entry<String,Object> entry:headers.entrySet()){
System.out.println("Key >> "+ entry.getKey()+":: Value >> "+ entry.getValue());
}

System.out.println(message.getPayload());
}
}

MainApp.java

import java.util.HashMap;
import java.util.Map;

import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import org.springframework.messaging.support.GenericMessage;
import org.springframework.messaging.support.MessageBuilder;

@SpringBootApplication
@Configuration
@ImportResource("integration-context.xml")
public class SpringIntegrationApplication implements ApplicationRunner {

public static void main(String[] args) {
SpringApplication.run(SpringIntegrationApplication.class, args);
}

@Override
public void run(ApplicationArguments arg0) throws Exception {

Message<String> message = MessageBuilder
.withPayload("Hello World, from the builder pattern")
.setHeader("newHeader", "newHeaderValue")
.build();

PrintService service = new PrintService();
service.print(message);
}
}

integration-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-4.2.xsd">


</beans>

Output —

2021–12–12 20:59:47.852 INFO 24232 — — [ main] c.o.i.SpringIntegrationApplication : Started SpringIntegrationApplication in 0.984 seconds (JVM running for 1.686)
Key >> newHeader:: Value >> newHeaderValue
Key >> id:: Value >> 55bc245c-5f54-af36-c8d7-ce742e42627f
Key >> timestamp:: Value >> 1639322987855
Hello World, from the builder pattern

2021–12–12 20:59:47.858 INFO 24232 — — [ionShutdownHook] o.s.i.endpoint.EventDrivenConsumer : Removing {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the

--

--

--

Java Developer and enthusiast

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Top 5 Odoo Apps for your Online Shop

Evolution of API Gateways — A Glimpse

Cloud spanner with Terraform

Text Search — Time Series Style

TREE COMMAND

Pushy & Pully development sprint 2

The Incredible Journey in Robotics

How to Learn a Programming language

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
PA

PA

Java Developer and enthusiast

More from Medium

Reflection in Java

Java 12 to 17 — All You Need To Know

JPA Key Notes

A Deep Dive into Java 17