在进入程序本身之前,快速回顾一下消息传递概念将很有用–消息传递是一种集成样式,其中两个独立的应用程序通过中介相互通信–中介被称为“消息传递系统”。
企业集成模式描述了基于消息的应用程序集成中常见的与集成相关的问题及其推荐的解决方案。
例如。 考虑企业集成模式之一– 消息通道 ,引用《 企业集成模式》一书 :
“消息传递频道”正在尝试解决的问题是:
企业具有两个需要进行通信的独立应用程序,最好使用消息传递进行通信。
一个应用程序如何通过消息传递与另一应用程序通信?
解决方案是:
使用消息通道连接应用程序,其中一个应用程序将信息写入该通道,而另一个应用程序从该通道读取该信息。
所有其他企业集成模式均以相同的方式描述。
快速访问Enterprise Integration Patterns的原因是要设置上下文– Spring Integration与Enterprise Integration Patterns非常紧密地结合在一起,并且是前面提到的“消息系统”。
现在来看使用Spring Integration的Hello World:
首先是一个小的junit:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("helloworld.xml")
public class HelloWorldTest {@Autowired@Qualifier("messageChannel")MessageChannel messageChannel;@Testpublic void testHelloWorld() {Message<String> helloWorld = new GenericMessage<String>("Hello World");messageChannel.send(helloWorld);}
}
在这里,一个MessageChannel被连接到测试中,第一个应用程序(这里是Junit),向Message Channel发送一条Message(在这种情况下为字符串“ Hello World”),然后从“ Message Channel”中读取消息并写入将消息发送给系统。
现在,让我们看一下“某物”如何从消息通道中提取消息并将其写到系统的其余部分:
<?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"xmlns:int-stream="http://www.springframework.org/schema/integration/stream"xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.1.xsdhttp://www.springframework.org/schema/integration/stream http://www.springframework.org/schema/integration/stream/spring-integration-stream-2.1.xsdhttp://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 Custom名称空间(这里是Integration命名空间)描述的Spring Integration流。 创建了一个“消息通道”,即想象中的“消息通道”,将“ Hello World”“消息”放入“消息通道”,“通道适配器”从中获取消息并将其打印到标准输出中。
这是一个小程序,但是它使用了三种企业集成模式- 消息 (“ Hello World”,它是发送到消息传递系统的信息包,是先前介绍的“ 消息通道 ”,而新的是消息传递)。 Channel Adapter ,这里是一个出站通道适配器,用于将消息传递系统连接到应用程序(在本例中为系统输出),进一步显示了Spring Integration如何与带有其Spring自定义名称空间的Enterprise Integration Patterns术语保持紧密的一致。
这个简单的程序介绍了Spring Integration,在接下来的几节课中,我将使用更多示例来更详细地介绍Spring Integration。
参考文献:
1. Spring Integration参考: http : //static.springsource.org/spring-integration/reference/htmlsingle/
2.企业集成模式: http : //www.eaipatterns.com/index.html 3. EIP的Visio模板: http : //www.eaipatterns.com/downloads.html
参考: all和其他博客中的JCG合作伙伴 Biju Kunjummen提供的Spring,Spring Integration,Enterprise Development 。
翻译自: https://www.javacodegeeks.com/2012/07/spring-integration-session-1-hello.html