我实现了用于提取数据的自定义消息源。而且当我运行我的应用程序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
?