Статьи

Spring Integration: облегченный подход к интеграции

Сегодняшнее приложение предполагает доступ всего бизнеса в корпоративной среде, независимо от прикладных технологий, которые требуют бесшовной интеграции с отчаянными системами.
Эта интеграция может быть достигнута путем подключения отчаянных систем с использованием технологий Middleware.

Платформа интеграции позволяет приложениям обмениваться информацией друг с другом, обеспечивая высокую совместимость архитектуры.

Spring Integration предоставляет посредническую инфраструктуру для создания облегченного интеграционного решения с использованием маршрутизации и посредничества независимо от протоколов. Spring Integration — это облегченная инфраструктура маршрутизации и посредничества, для развертывания которой не требуется тяжелый ESB-контейнер.
Spring Integration использует объект Message для связи, маршрутизации и передачи данных, что является ничем иным, но оболочкой для объекта Java состоит из полезной нагрузки и заголовка. Полезные данные состоят из данных, которые могут быть любого типа, такие как Файл, Строка, Поток и т. Д., А заголовок состоит из общей информации о сообщении, такой как идентификатор, отметка времени и т. Д.

Сообщение передается производителю по каналу, который отделяет источник от пункта назначения и отправляет сообщение в любые протоколы. такие как JMS, HTTP, Ldap, файл и т. д.
Производители отправляют сообщения на канал, а потребители получают сообщения от канала

Spring Integration_Simple
Приложение для простой интеграции

Ниже приведен пример того, как производитель отправляет объект сотрудника на канал, а издатель получает сообщение от канала.
Скачать исходный код: Скачать полную ссылку для скачивания кода  .

Конфигурация Spring Dependency Maven

Для начала простого примера интеграции нам просто нужно добавить базовую интеграцию Spring и контекстную зависимость Spring в maven pom.xml. Кроме того, мы также нуждаемся в тесте Junit и Spring, чтобы включить юнит-тест

<properties>
<spring.framework.version>3.2.3.RELEASE</spring.framework.version>
<spring.integration.version>2.2.4.RELEASE</spring.integration.version>
<junit.version>4.11</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>
<version>${spring.integration.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.framework.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

Конфигурация Spring

Мы должны настроить канал и шлюз в конфигурации Spring для отправки и получения сообщения.

SpringIntegTest-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/integration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.2.xsd">
<!--
sendRequest
receiveRequest
-->
<annotation-config/>
<context:component-scan base-package="org.springsample.integration"/>
<gateway id="request" service-interface="org.springsample.integration.SentRequest"/>
<channel id="sendRequest"/>
<outbound-channel-adapter channel="sendRequest" ref="receiveResponse" method="processMessage" />
</beans:beans>

Здесь мы создали шлюз запроса для отправки сообщения на канал и исходящий адаптер для получения сообщения из канала sendRequest.
Шлюз Spring Integration — это точки входа для отправки сообщений, которые задаются с помощью Java Interface. Spring Integration автоматически определяет реализацию прокси во время выполнения
запроса и получения
Ниже мы создадим класс SentRequest и ReceiveResponse для отправки и получения сообщения следующим образом
SentRequest.java

package org.springsample.integration;
import org.springframework.integration.annotation.Gateway;
public interface SentRequest {
@Gateway(requestChannel="sendRequest")
public void process(Employee emp);
}

В аннотации @Gateway будет указана точка входа для отправки сообщения.

package org.springsample.integration;
import org.springframework.integration.Message;
import org.springframework.integration.annotation.MessageEndpoint;
@MessageEndpoint
public class ReceiveResponse {
public void processMessage(Message<Employee> message) {
Employee employee = message.getPayload();
System.out.println("Message Received \n Name :"+employee.getName()+"/n Phone : "+employee.getPhone()+"/n Address :"+employee.getAddress());
}
}

@MessageEndpoint будет указывать, что он получит сообщение от канала через адаптер.
Нет, но не ниже, это сотрудник POJO

package org.springsample.integration;
public class Employee {
private String name;
private String title;
private String address;
private String phone;
public Employee(String name, String phone, String address) {this.name=name;this.phone=phone; this.address=address;
//……..Getter amd Setter
}
}

Тестирование

Мы можем проверить это, используя тестовые рамки, как показано ниже

package org.springbyexample.integration;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class SpringIntegTest {
@Autowired
private SentRequest request = null;
@Test
public void testIntegration() {
Employee emp = new Employee("John", "12345678", "Sunny Street Mac RG1");
request.process(emp);
}
}

Убедитесь, что вы сохраняете имя конфигурационного файла Spring SpringIntegTest-context в org / springbyexample / интеграции и должны находиться в вашем пути к классам.
При запуске SpringIntegTest будет отображаться консольное сообщение следующим образом

Полученное сообщение
Имя: John / n Телефон: 12345678 / n Адрес: Sunny Street Mac RG1

Скачать исходный код: ссылка для скачивания .

Резюме

Spring Integration — это простая интеграция с открытым исходным кодом, которая расширяет слабые связи и делает интеграцию приложений легкой и простой. Он будет интегрировать, маршрутизировать и передавать сообщение через канал и шлюз настраиваемым способом.
Эта статья поможет понять, что такое Spring Integration, и поможет вам разработать простое интеграционное приложение.

Ресурсы

http://static.springsource.org/spring-integration/reference/html/overview.html