对于最新的稳定版本,请使用 Spring Integration 6.3.4spring-doc.cn

对于最新的稳定版本,请使用 Spring Integration 6.3.4spring-doc.cn

通常,消息流从入站通道适配器(例如 )开始。 适配器配置了 ,它要求 定期生成消息。 Java DSL 也允许从 . 为此,Fluent API 提供了一个重载方法。 您可以将 配置为 bean 并将其作为该方法的参数提供。 的第二个参数是一个 lambda,它允许您为 . 以下示例显示如何使用 Fluent API 和 lambda 创建:<int-jdbc:inbound-channel-adapter><poller>MessageSource<?>IntegrationFlowMessageSource<?>IntegrationFlowIntegrationFlow.from(MessageSource<?> messageSource)MessageSource<?>IntegrationFlow.from()Consumer<SourcePollingChannelAdapterSpec>PollerMetadataSmartLifecycleSourcePollingChannelAdapterIntegrationFlowspring-doc.cn

@Bean
public MessageSource<Object> jdbcMessageSource() {
    return new JdbcPollingChannelAdapter(this.dataSource, "SELECT * FROM something");
}

@Bean
public IntegrationFlow pollingFlow() {
    return IntegrationFlow.from(jdbcMessageSource(),
                c -> c.poller(Pollers.fixedRate(100).maxMessagesPerPoll(1)))
            .transform(Transformers.toJson())
            .channel("furtherProcessChannel")
            .get();
}

对于不需要直接构建对象的情况,您可以使用基于 . 的结果会自动包装在 a 中(如果它还不是 a )。MessageIntegrationFlow.fromSupplier()java.util.function.SupplierSupplier.get()MessageMessagespring-doc.cn