我需要为每条发出的消息添加一个前缀。我可以使用一种方法来做到这一点,但只想让变压器处理它。
问题是消息需要以我无法真正输入的控制代码字符为前缀,然后是一些额外的文本。
例如:
private final static char EOT = (char) 4;
private final static char STX = (char) 2;
private final static char ETX = (char) 3;
private final static String additionalText = " -0000 9305";
见:http ://en.wikipedia.org/wiki/C0_and_C1_control_codes
然后消息将带有前缀:
EOT + additionalText + ETX;
但是,我找不到如何在转换器中使用的 SpEL 表达式中对控制代码进行类型转换:
<int:transformer
id="prefixAdder"
input-channel="initialMessage"
output-channel="prefixAdded"
expression="'#{(char) 4}' + ' -0000 9305' + '#{(char) 3}' + payload"/>