apache.camel 中交易所的 getIn() 与 getMessage()
getIn() vs getMessage() of an Exchange in apache.camel
我试图了解 apache.camel Exchange 的 getIn() 和 getMessage() 之间的区别。在文档中它说 getIn() return 是入站消息,而 getMessage() return 是当前消息。我的问题是:当入站消息在当前处理器中没有改变时,getIn() 和 getMessage() return 是同一条消息吗?
如果使用 InOnly MEP,方法 getIn()
和 getMessage()
return 是 Message
的相同实例。
getMesage()
的逻辑很简单。如果交换有关联 out
消息,return out
。否则 return in
.
在大多数情况下,out
消息不会与 Exchange
关联。在 Apache Camel 3 中 getOut()
已弃用,保留用于边缘情况和组件开发人员的内部使用。鼓励最终用户更喜欢 getMessage()
而不是 getIn()
和 getOut()
.
Exchange.getIn()
将包含路由的初始消息(例如 Consumer
创建的消息),而 Exchange.getMessage()
将随着消息的转换而随时间变化。
Exchange.getOut()
、Exchange.setOut(...)
和 Exchange.hasOut()
已被弃用。在它们被弃用之前,我们需要编写如下代码
Message message = exchange.hasOut() ? exchange.getOut() : exchange.getIn();
doStuff(message)
“out”概念已被弃用,取而代之的是 get/set“message”,因此我们现在可以编写类似
的代码
Message message = exchange.getMessage();
doStuff(message)
如果您查看 AbstractExchange.java,您会发现 getMessage()
正在调用旧的已弃用方法
class AbstractExchange implements ExtendedExchange {
...
@Override
public Message getMessage() {
return hasOut() ? getOut() : getIn();
}
...
}
我试图了解 apache.camel Exchange 的 getIn() 和 getMessage() 之间的区别。在文档中它说 getIn() return 是入站消息,而 getMessage() return 是当前消息。我的问题是:当入站消息在当前处理器中没有改变时,getIn() 和 getMessage() return 是同一条消息吗?
如果使用 InOnly MEP,方法 getIn()
和 getMessage()
return 是 Message
的相同实例。
getMesage()
的逻辑很简单。如果交换有关联 out
消息,return out
。否则 return in
.
在大多数情况下,out
消息不会与 Exchange
关联。在 Apache Camel 3 中 getOut()
已弃用,保留用于边缘情况和组件开发人员的内部使用。鼓励最终用户更喜欢 getMessage()
而不是 getIn()
和 getOut()
.
Exchange.getIn()
将包含路由的初始消息(例如 Consumer
创建的消息),而 Exchange.getMessage()
将随着消息的转换而随时间变化。
Exchange.getOut()
、Exchange.setOut(...)
和 Exchange.hasOut()
已被弃用。在它们被弃用之前,我们需要编写如下代码
Message message = exchange.hasOut() ? exchange.getOut() : exchange.getIn();
doStuff(message)
“out”概念已被弃用,取而代之的是 get/set“message”,因此我们现在可以编写类似
的代码Message message = exchange.getMessage();
doStuff(message)
如果您查看 AbstractExchange.java,您会发现 getMessage()
正在调用旧的已弃用方法
class AbstractExchange implements ExtendedExchange {
...
@Override
public Message getMessage() {
return hasOut() ? getOut() : getIn();
}
...
}