InboundChannelAdapter 的正确启动方式
Correct way to start InboundChannelAdapter
我正在使用基于注释的
@Bean
public MessageChannel channel() {
return new DirectChannel();
}
@Bean
@InboundChannelAdapter(value = "channel",poller = @Poller(fixedDelay="1000"))
public MessageSource<?> inbound() {}
完美运行。
但是现在我不想让它自动启动,正确的方法是什么start/stop?
p.s.
我没有使用 IntegrationFlow。
查看 @InboundChannelAdapter
个属性:
/**
* {@code SmartLifecycle} options.
* Can be specified as 'property placeholder', e.g. {@code ${foo.autoStartup}}.
* @return if the channel adapter is started automatically or not.
*/
String autoStartup() default "true";
因此,false
它不会自动启动。
您需要手动将服务中某处的 SourcePollingChannelAdapter
bean 自动装配到 start()
它。
请参阅 @EndpointId
注释与 @InboundChannelAdapter
放在一起。
或者您可以使用控制总线模式来执行 start()
命令:
https://docs.spring.io/spring-integration/docs/current/reference/html/configuration.html#annotations
与 Java DSL 不会有太大区别,除非您不需要搜索 @EndpointId
,因为 EdnpointSpec
上有明显的 id()
=] 与 poller()
.
一起暴露
我正在使用基于注释的
@Bean
public MessageChannel channel() {
return new DirectChannel();
}
@Bean
@InboundChannelAdapter(value = "channel",poller = @Poller(fixedDelay="1000"))
public MessageSource<?> inbound() {}
完美运行。
但是现在我不想让它自动启动,正确的方法是什么start/stop?
p.s.
我没有使用 IntegrationFlow。
查看 @InboundChannelAdapter
个属性:
/**
* {@code SmartLifecycle} options.
* Can be specified as 'property placeholder', e.g. {@code ${foo.autoStartup}}.
* @return if the channel adapter is started automatically or not.
*/
String autoStartup() default "true";
因此,false
它不会自动启动。
您需要手动将服务中某处的 SourcePollingChannelAdapter
bean 自动装配到 start()
它。
请参阅 @EndpointId
注释与 @InboundChannelAdapter
放在一起。
或者您可以使用控制总线模式来执行 start()
命令:
https://docs.spring.io/spring-integration/docs/current/reference/html/configuration.html#annotations
与 Java DSL 不会有太大区别,除非您不需要搜索 @EndpointId
,因为 EdnpointSpec
上有明显的 id()
=] 与 poller()
.