Spring Integration学习(一)

一开始,接触Spring Inategration,“额,新东西”,记得在学校的时候,只学过Spring,而且学得很浅,马丹,有点小后悔以前没有吃透这一块。(而且做其他项目,能用C++,表示没用过Java,大概C++比较顺手吧)

现在切入正题。

Spring Integration (后面简称SI)

SI就是Spring大类的一种,其实还有Spring Boot,Spring For Andoria,Spring Batch等等。。。现在发现这世界真大,原来以前只是接触而已,并没发现里面的广博,以后还要任重而道远。

SI是一个功能强大的EIP(Enterprise Intergration Patterns,即企业集成模式)。目前截止2017年11月底,SI5.0发布了。

介绍一些SI的实体。

1.Message

主要分成两部分,分别是header和payload。

package org.springframework.integration;
public interface Message {
MessageHeaders getHeaders();
T getPayload();
}

package org.springframework.integration;
public final class MessageHeaders
implements Map, Serializable {
/* implementation omitted */
}

那么如何创建Message呢?

Message helloMessage =
MessageBuilder.withPayload("Hello, world!")
.setHeader("custom.header", "Value")
.setHeaderIfAbsent("custom.header2", "Value2")
.build();

2.Message Channel

主要用于传递message。

那么message如何进入channel呢?

package org.springframework.integration;
public interface MessageChannel {
boolean send(Message message);
boolean send(Message message, long timeout);
}

对于PublishSubscribeChannel,用于发布订阅

package org.springframework.integration.core;
public interface SubscribableChannel extends MessageChannel {
boolean subscribe(MessageHandler handler);
boolean unsubscribe(MessageHandler handler);
}

对于PollableChannel,用于接收message

public interface PollableChannel extends MessageChannel {

    Message receive();

    Message receive(long timeout);

}

3.Message Point

3.1channel adapter

用于与外部数据交换的适配器。连接应用与消息系统。

3.2message gateway

用于与外部数据的双向传输。

3.3service activator

根据传入的消息调用服务,根据其返回值,调用出站消息调用服务


 

 

你可能感兴趣的:(Spring,Integration)