2014-09-03 2 views
1

우리는 Spring Integration을 프로젝트에 추가하고 있습니다. 플랫폼은 Java 7이며 8 로의 마이그레이션은 가까운 미래에 계획되지 않습니다. 모든 Spring 구성은 Java 구성이며 xml이 아닙니다.스프링 통합 Java가없는 Java 구성 8

@Bean 
public IntegrationFlow pollingFlow() { 
    return IntegrationFlows.from(jdbcMessageSource(), 
       c -> c.poller(Pollers.fixedRate(100).maxMessagesPerPoll(1))) 
      .transform(new ObjectToJsonTransformer()) 
      .channel("furtherProcessChannel") 
      .get(); 
} 
: 하지만 우리는 순수 자바로하지만, 예를 들어 등 람다없이 봄 통합을 구성 할 수있는 가이드를 찾을 수없는, 우리는 (봄 - 통합 - 확장 GitHub의에서 샘플)이 같은 자바 7 동등한 필요

우리는 이것을 이해하기 위해 Java 8의 새로운 기능에 대한 교육을받지 않았습니다. Java 8로 마이그레이션을 강제하거나 Spring 통합 xml config를 사용하는 것은 정말 교착 상태입니까? 감사합니다. .

답변

1

c -> c.poller(Pollers.fixedRate(100).maxMessagesPerPoll(1))가의 동등 이행.

그게 전부입니다.

+0

설명에 감사드립니다. 정확히 필요한 부분입니다. – dkane

+0

불행하게도 성공적인 설정/빌드 후에도 Java 7에서는 작동하지 않습니다. 배포시 런타임 오류는 java.lang.UnsupportedClassVersionError입니다. org/springframework/integration/dsl/support/EndpointConfigurer : 지원되지 않는 major.minor 버전 52.0 – dkane

+0

Eh ... 죄송합니다. 그건 내 잘못이야. 최근에 수정되어 M3로 내일 출시 될 예정이다. 그러나 최신 스냅 샷으로 이미 시도해 볼 수 있습니다. –

0

공식 스프링 프레임 워크 참조 가이드를 살펴보십시오.

This은 귀하의 질문과 관련된 특정 섹션입니다. 모든 람다 단지 인라인 인터페이스 구현

return IntegrationFlows.from(jdbcMessageSource(), 
    new EndpointConfigurer<SourcePollingChannelAdapterSpec>() { 
    @Override 
    public void configure(SourcePollingChannelAdapterSpec c) { 
     c.poller(Pollers.fixedRate(100).maxMessagesPerPoll(1)); 
    } 
    }) 

, 그래서, 당신은 단지 new을 입력하고 CTRL+SHIFT+SPACE를 눌러 IDE에서해야 할 일을 - 그리고 IDE는 당신에게 적절한 제안 :

+1

감사합니다. 우리는 이미 Spring Java Configuration을 알고 널리 사용합니다. 그러나 우리는 Spring Integration을 처음 접했고 Spring 통합 체인 (Java 8 기능 없음)에 대한 Java 구성 예제를 찾을 수 없습니다. 예를 들어 폴러를 인스턴스화하고이를 순수 Java 7에서 채널에 바인드하는 방법이 명확하지 않습니다. – dkane