Прежде чем углубляться в саму программу, будет полезен краткий обзор концепций обмена сообщениями. Обмен сообщениями — это стиль интеграции, при котором два независимых приложения взаимодействуют друг с другом через посредника, который называется «Система обмена сообщениями».
Корпоративные шаблоны интеграции описывают общие проблемы, связанные с интеграцией с интеграцией приложений на основе сообщений, и их рекомендуемые решения.
Например, Рассмотрим один из шаблонов интеграции предприятия — Канал обмена сообщениями , приведенный в Книге шаблонов интеграции Entprise :
Проблема, которую пытается решить «Канал обмена сообщениями»:
У предприятия есть два отдельных приложения, которые должны взаимодействовать, предпочтительно с помощью обмена сообщениями.
Как одно приложение взаимодействует с другим с помощью обмена сообщениями?
Решение:
Соедините приложения, используя канал сообщений , где одно приложение записывает информацию в канал, а другое — эту информацию из канала.
Все остальные шаблоны интеграции предприятия описаны в том же ключе.
Причиной быстрого посещения шаблонов корпоративной интеграции является установка контекста — Spring Integration очень тесно согласуется с шаблонами корпоративной интеграции и представляет собой «систему обмена сообщениями», о которой упоминалось ранее.
Итак, теперь, чтобы увидеть Hello World, используя Spring Integration:
Сначала маленький джунит:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
@RunWith (SpringJUnit4ClassRunner. class ) @ContextConfiguration ( "helloworld.xml" ) public class HelloWorldTest { @Autowired @Qualifier ( "messageChannel" ) MessageChannel messageChannel; @Test public void testHelloWorld() { Message<String> helloWorld = new GenericMessage<String>( "Hello World" ); messageChannel.send(helloWorld); } } |
Здесь MessageChannel подключается к тесту, первое приложение (в данном случае Junit) отправляет сообщение (в данном случае строку «Hello World») на канал сообщений, что-то читает сообщение из «канала сообщений» и пишет сообщение в систему вышло.
Теперь давайте рассмотрим оставшуюся часть того, как «что-то» берет сообщение из Канала сообщений и записывает в систему:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
<? xml version = "1.0" encoding = "UTF-8" ?> xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.1.xsd http://www.springframework.org/schema/integration/stream http://www.springframework.org/schema/integration/stream/spring-integration-stream-2.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> < int:channel id = "messageChannel" ></ int:channel > < int-stream:stdout-channel-adapter channel = "messageChannel" append-newline = "true" /> </ beans > |
Выше описан поток интеграции Spring, описываемый с использованием пространств имен Spring Custom, здесь — пространство имен интеграции. «Канал сообщений», образно называемый «messageChannel», создается, «Hello World» «Сообщение» помещается в «Канал сообщений», из которого «Адаптер канала» получает сообщение и распечатывает его в стандартном формате.
Это небольшая программа, но она использует три корпоративных шаблона интеграции — сообщение («Hello World», которое представляет собой пакет информации, отправляемой в систему обмена сообщениями, « канал сообщений », который был представлен ранее, и новый, Адаптер канала , здесь Адаптер исходящего канала, который соединяет систему обмена сообщениями с приложением (в данном случае — с системой), а также показывает, как Spring Integration очень тесно согласуется с терминологией шаблонов Enterprise Integration Patterns со своим настраиваемым пространством имен Spring.
Эта простая программа представляет Spring Integration, я буду представлять Spring Integration более подробно, используя несколько примеров в следующих нескольких сессиях.
Рекомендации:
1. Ссылка Spring Integration: http://static.springsource.org/spring-integration/reference/htmlsingle/
2. Шаблоны корпоративной интеграции: http://www.eaipatterns.com/index.html
3. Шаблоны Visio для EIP: http://www.eaipatterns.com/downloads.html
Ссылка: Spring, Spring Integration, Enterprise Development от нашего партнера JCG Биджу Кунджуммен в блоге « все и вся» .