2013-01-24 42 views
1

我需要爲每個出去的消息添加一個前綴。我可以用一種方法來做,但只想讓變壓器處理它。在Spring集成中使用的SpEL表達式中的類型轉換

問題是消息需要添加控制代碼字符作爲前綴,但我無法真正輸入,然後添加一些其他文本。

例如:

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"/> 

回答

0

SpEL不直接支持;您可以添加一個<bean/>作爲控制數據的前綴,並使用expression="@prefixer.prefixPreamble(payload)"

public class Prefixer { 
    public String prefix(String payload) { 
     return prefix + payload; 
    } 
} 
+0

謝謝。我已經在使用變壓器的ref/method屬性,它們看起來基本上是一樣的。我只是想避免添加前綴而沒有任何額外的bean。 – thisisCP

相關問題