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

时间:2019-03-11 16:36:56

标签: spring-boot spring-integration

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

  

原因:java.lang.IllegalArgumentException:没有为通道适配器'statusFlow.org.springframework.integration.config.SourcePollingChannelAdapterFactoryBean#0'定义轮询器,并且上下文中没有默认轮询器。

我的代码:

@Bean("myTrigger")
public PeriodicTrigger periodicTrigger() {
    PeriodicTrigger trigger = new PeriodicTrigger(2000);
    trigger.setFixedRate(true);
    return trigger;
}

@Bean("myPollerMetadata")
public PollerMetadata currentRackStatusLandingFlowPollerMetadata(@Qualifier("myTrigger") PeriodicTrigger trigger) {
    PollerMetadata metadata = new PollerMetadata();
    metadata.setTrigger(trigger);
    metadata.setMaxMessagesPerPoll(1);
    return metadata;
}

@InboundChannelAdapter(poller = @Poller(value = "myPollerMetadata"))
public MessageSource<List<Status>> statusSource() {
    return () -> new DefaultMessageBuilderFactory()
            .withPayload(statusService.getCurrentStatuses())
            .build();
}

我的问题:

如何为PollerMetadata设置@InboundChannelAdapter

0 个答案:

没有答案
相关问题