如何在 Spring 集成中使用临时频道?
How to use temporary Channel in Spring Integration?
我是 Spring 集成的新手,我正在尝试从临时频道获取消息。
正在读取 documentation spring 使用了一个临时频道。
我猜它的名字是 NullChannel
我需要我的 gateway
returns 来自临时通道的值。
http controller -> gateway -> direct channel -> activator 1 -> queue channel -> activator 2
所以我的 activator 2
会将新值放入临时通道,因此 gateway
将从临时通道检索值
@MessageEndpoint
public class Activator2 {
@Autowired
private NullChannel nullChannel;
@ServiceActivator(inputChannel = "asyncChannel")
public void plus(Integer message){
try {
message++;
Thread.sleep(2000);
nullChannel.send(MessageBuilder.withPayload(message).build());
log.info("Activator 2: " +message );
} catch (InterruptedException e) {
log.error("I don't want to sleep");
}
}
}
它不工作。我不确定是否一切都连接良好
NullChannel
类似于 Unix 中的 /dev/null
;它只是丢弃值。
@ServiceActivator(inputChannel = "asyncChannel")
public Integer plus(Integer message){
return message;
}
会自动执行您想要的操作。
如果没有outputChannel
,框架将结果发送到replyChannel
头。
我是 Spring 集成的新手,我正在尝试从临时频道获取消息。
正在读取 documentation spring 使用了一个临时频道。
我猜它的名字是 NullChannel
我需要我的 gateway
returns 来自临时通道的值。
http controller -> gateway -> direct channel -> activator 1 -> queue channel -> activator 2
所以我的 activator 2
会将新值放入临时通道,因此 gateway
将从临时通道检索值
@MessageEndpoint
public class Activator2 {
@Autowired
private NullChannel nullChannel;
@ServiceActivator(inputChannel = "asyncChannel")
public void plus(Integer message){
try {
message++;
Thread.sleep(2000);
nullChannel.send(MessageBuilder.withPayload(message).build());
log.info("Activator 2: " +message );
} catch (InterruptedException e) {
log.error("I don't want to sleep");
}
}
}
它不工作。我不确定是否一切都连接良好
NullChannel
类似于 Unix 中的 /dev/null
;它只是丢弃值。
@ServiceActivator(inputChannel = "asyncChannel")
public Integer plus(Integer message){
return message;
}
会自动执行您想要的操作。
如果没有outputChannel
,框架将结果发送到replyChannel
头。