我的情况是这样的:我需要根据邮政编码将消息路由到三个不同的商店。
为此,我需要查看邮件标题以找到客户的邮政编码,并进行以下计算:
if(zip < 5000)
{
store = "SJ";
}
else if(zip >= 6000)
{
store = "JY";
}
else
{
store = "FY";
}
我已经设法使用以下自定义 Transformer 来完成它,我用它来丰富消息头:
public class HeaderEnricher {
public Message<?> transform(Message<?> message)
{
int zip = message.getHeaders().get("Customer Zip", Integer.class);
String store;
if (zip < 5000)
{
store = "SJ";
}
else if (zip >= 6000)
{
store = "JY";
}
else
{
store = "FY";
}
Message<?> messageOut = MessageBuilder
.withPayload(message.getPayload())
.copyHeadersIfAbsent(message.getHeaders())
.setHeaderIfAbsent("store", store).build();
return messageOut;
}
}
正如我所说的那样,这是可行的,但我想知道如何使用 header-enricher 来做同样的事情。我之所以问,是因为我希望我的集成图将其说明为标题丰富器,因为这是我对上述转换器代码的意图。
那可能吗?