没有Java 8的Spring集成Java配置

时间:2014-09-03 14:57:04

标签: spring integration java-7 dsl

我们正在为项目添加Spring Integration。该平台是Java 7,并且在不久的将来不会计划迁移到8。所有Spring配置都是Java配置,没有xml。 但是我们找不到任何使用纯Java配置Spring Integration但没有lambdas等的指南。例如,我们需要Java 7等同于这样的东西(来自spring-integration-extensions github的示例):

@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配置? 谢谢。

2 个答案:

答案 0 :(得分: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会建议您使用相应的实现。

这就是全部。

答案 1 :(得分:0)

请查看官方的Spring框架参考指南。

This是您的问题所涉及的具体部分。