2014-07-08 2 views
1

일부 값을 찾거나 계산하여 페이로드를 풍부하게 만들 필요가 있습니다. 지금까지는 문제가없는 코드 아래에서 (더 나은 방법으로 보입니다) 덕분에 더 직접적인 방법, 덕분에체인에서 사용자 정의 페이로드 강화 빈을 사용하는 방법

우리가 헤더 풍부한에 대한 페이로드 풍부하게 similair에 사용할 수있는 것 같아 보이지, 나는 무식 할 수 있습니다.

<int:chain input-channel="someInputChannel"> 
     <int:splitter ref="spl"/> 
     <int:filter ref="flb" method="filter" discard-channel="rejectedChannel" /> 
     <int:transformer ref="transformer"/> 
     <int:header-enricher> 
     <int:header name="lookUpData" method="lookup" ref="lookupBean"/>   
     </int:header-enricher>  
     <int:enricher> 
      <int:property name="masterId" expression="headers[lookUpData]"/> 
     </int:enricher>  
     <int:service-activator ref="updateAdapter" method="updateRecords"/>  
     <int:outbound-channel-adapter ref="notifierAdapter" method="notifyUpdate"/> 
    </int:chain> 

답변

2

사용 SpEL을 :

<int:enricher> 
     <int:property name="masterId" expression="@lookupBean.lookup(#root)" /> 
    </int:enricher>  

또는

<int:enricher> 
     <int:property name="masterId" expression="@lookupBean.lookup(payload)" /> 
    </int:enricher>  

만 (당신 조회는 POJO 할 수있는 프레임 워크에 연결되지 의미) 페이로드를 필요로하는 경우

.

+0

위대한 방법이지만이 표현식에서 lookup (Message message)에 인수로 메시지를 전달하는 방법은 무엇입니까? 감사합니다 – Mark1234

+0

답변을 편집했습니다. –

관련 문제