Spring boot 当我们在@InboundChannelAdapter中使用自定义PollerMetadata时,PollerMetadata为null

Spring boot 当我们在@InboundChannelAdapter中使用自定义PollerMetadata时,PollerMetadata为null,spring-boot,spring-integration,Spring Boot,Spring Integration,我实现了用于提取数据的自定义消息源。当我运行我的应用程序bean PollerMetadata时,在@InboundChannelAdapter和抛出异常之前没有时间初始化: 原因:java.lang.IllegalArgumentException:尚未为通道适配器“statusFlow.org.springframework.integration.config.SourcePollingChannelAdapterFactoryBean0”定义轮询器,并且上下文中没有可用的默认轮询器 我的

我实现了用于提取数据的自定义消息源。当我运行我的应用程序bean PollerMetadata时,在@InboundChannelAdapter和抛出异常之前没有时间初始化:

原因:java.lang.IllegalArgumentException:尚未为通道适配器“statusFlow.org.springframework.integration.config.SourcePollingChannelAdapterFactoryBean0”定义轮询器,并且上下文中没有可用的默认轮询器

我的代码:

我的问题:


如何为@InboundChannelAdapter设置轮询数据?

根据您的例外情况,故事不是关于@InboundChannelAdapter的,而是类似IntegrationFlows.fromstatusSource的内容

在这种情况下,您需要在DSL定义上配置轮询器:

@Bean
IntegrationFlow yourFlow(PollerMetadata myPollerMetadata) {
    return IntegrationFlows.from(statusSource(), e -> e.poller(myPollerMetadata))
@InboundChannelAdapter注释对于Java DSL和IntegrationFlow定义没有意义

@Bean
IntegrationFlow yourFlow(PollerMetadata myPollerMetadata) {
    return IntegrationFlows.from(statusSource(), e -> e.poller(myPollerMetadata))