2014-04-01 3 views
2

자바에서는 변환기 등을 쓰는 방법에 대한 예제가 많이 있지만 필터에 대해서는 아무것도 사용하지 않습니다 (스크립트 유형 필터 제외). 자바 메소드).출력 채널에 메시지를 필터링하는 Spring-XD 프로세서 모듈을 만드는 방법은 무엇입니까

소스에서 싱크대까지 메시지의 페이로드를 필터링하는 사용자 지정 Java 필터를 만들고 싶습니다.

필터의 예는 모두 표현식을 나타냅니다.

(어떻게) 표현식으로 지정된 클래스의 자바 메소드를 실행하도록 컨텍스트를 말할 수 있습니까?

답변

6

글쎄, 사용자 정의 프로세서 모듈을 구현하는 데 필요한 것.

public class MySelector implements MessageSelector { 

    boolean accept(Message<?> message) { 
     ... 
    } 
} 

모듈 CTX myfilter.xml : 그냥 필터 Spring XD Guilde

사용자 정의 Selector에서 사용자 변압기 샘플에 따라

<channel id="input"/> 

<filter input-channel="input" output-channel="output"> 
    <beans:bean class="custom.MySelector" /> 
</filter> 

<channel id="output"/> 

패키지 항아리로 클래스와 ${xd.home}/modules/processors/myfilter 디렉터리에 모든 것을 배치 구조 :

/myfilter 
    /config 
     myfilter.xml 
    /lib 
     myfilter.jar 

시험해 보면 다음과 같습니다.

xd:> stream create --name filtertest --definition "http | myfilter | log" 
+0

Brilliant! @Artem에게 감사합니다. 나는 스프링 통합과 xd에 조금 익숙하다. 내가 언급 한 예제를 보았습니다. 필터에 대해 아무 말도하지 않았기 때문에 조금 좌절했습니다. 그것은 나를 위해 해낸 MessageSelector 구현이었습니다. –