Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Spring Integration Standalone Application with Spring Boot

DZone's Guide to

Spring Integration Standalone Application with Spring Boot

· Java Zone
Free Resource

Managing a MongoDB deployment? Take a load off and live migrate to MongoDB Atlas, the official automated service, with little to no downtime.

I had earlier blogged about a way to write a standalone Spring Integration application. Spring Boot makes creating this standalone application much simpler.

The simple flow was to poll the USGS service providing information about the earthquake activity around the world and to log this information. The flow described using Spring Integration is the following:
<int:inbound-channel-adapter channel="quakeinfotrigger.channel" expression="''">
 <int:poller fixed-delay="60000"></int:poller>
</int:inbound-channel-adapter>
 
<int:channel id="quakeinfo.channel">
 <int:queue capacity="10"/>
</int:channel>
 
<int:channel id="quakeinfotrigger.channel"></int:channel>
 
<int-http:outbound-gateway id="quakerHttpGateway"
	request-channel="quakeinfotrigger.channel"
	url="http://earthquake.usgs.gov/earthquakes/feed/geojson/all/hour"
	http-method="GET"
	expected-response-type="java.lang.String"
	charset="UTF-8"
	reply-timeout="5000"
	reply-channel="quakeinfo.channel">    
</int-http:outbound-gateway>
 
<int:logging-channel-adapter id="messageLogger" log-full-message="true" channel="quakeinfo.channel" level="ERROR">
 <int:poller fixed-delay="5000" ></int:poller>
</int:logging-channel-adapter>
Pre-boot, the way to write a main program to start this flow would have been along these lines:

package standalone;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class Main {
 public static void main(String[] args) {
  ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/httpgateway.xml");
  applicationContext.registerShutdownHook();
 }
}
With Spring-boot however the configuration is IMHO simpler:
mvn spring-boot:run
I had a very small hand in fixing this start-up script by contributing a change to the plugin to start-up the application without needing to manually run the compilation step first.

Even better, the spring-boot-maven-plugin provides tools to package the entire application into a executable jar which gets triggered during the package phase, along the lines of shade plugin:
mvn package
and the executable jar run this way:
java -jar target/si-standalone-sample-1.0-SNAPSHOT.jar

An updated project with this change is available at this github location - https://github.com/bijukunjummen/si-standalone-sample

MongoDB Atlas is the easiest way to run the fastest-growing database for modern applications — no installation, setup, or configuration required. Easily live migrate an existing workload or start with 512MB of storage for free.

Topics:

Published at DZone with permission of Biju Kunjummen, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}