2014-09-03 18 views
1

我們將Spring集成添加到我們的項目中。該平臺是Java 7,遷移到8不會在不久的將來計劃。所有的Spring配置都是Java配置,沒有xml。 但我們找不到任何引導配置Spring集成純Java,但沒有lambda表達式等。例如,我們需要的Java 7等同於這樣的事情(樣品從Spring集成的擴展github上):Spring集成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(); 
} 

我們甚至沒有通過Java 8的新特性來了解這一點。 對於我們來說,這是一個真正的僵局嗎?強制遷移到java 8還是使用Spring集成xml配置? 謝謝。

回答

1

c -> c.poller(Pollers.fixedRate(100).maxMessagesPerPoll(1))是等效的:

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

任何lambda函數只是一個內聯接口的實現,因此,你需要什麼你的IDE做只需鍵入new並按CTRL+SHIFT+SPACE - 和IDE建議你適當的實現。

就是這樣。

+0

非常感謝解釋,這正是我們需要的。 – dkane 2014-09-03 18:07:39

+0

不幸的是,即使在成功配置/構建之後,也不能與Java 7一起使用。運行時部署錯誤是java.lang.UnsupportedClassVersionError:org/springframework/integration/dsl/support/EndpointConfigurer:不支持的major.minor版本52.0 – dkane 2014-09-04 14:18:09

+0

呃...對不起。那是我的錯。它最近已經修復並將於明天發佈爲M3。但是,您可以使用最新的快照進行嘗試。 – 2014-09-04 15:03:10

0

請看官方Spring框架參考指南。

This是您的問題所涉及的特定部分。

+1

謝謝。我們已經知道Spring Java配置並廣泛使用它。但是我們對Spring集成很陌生,無法找到Spring Integration鏈(不包含Java 8特性)的Java配置示例。例如,如何在純Java 7中實例化輪詢並將其綁定到通道尚不清楚。 – dkane 2014-09-03 15:22:40