1

나가는 모든 메시지에 접두사를 추가해야합니다. 나는 방법을 사용하여 그것을 할 수 있지만 변압기가 그것을 처리하도록하고 싶습니다.스프링 통합에서 사용되는 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 속성을 사용하여 본질적으로 동일한 것을 수행했다. 난 그냥 콩을 추가하지 않고 접두사를 추가하는 것으로 벗어나려고했다. – thisisCP