Java 使用spring集成命令总线启动/停止通过注释定义的抽象端点
我使用注释来定义inboundChannelAdapter。 MyConfig.javaJava 使用spring集成命令总线启动/停止通过注释定义的抽象端点,java,spring,spring-integration,spring-annotations,Java,Spring,Spring Integration,Spring Annotations,我使用注释来定义inboundChannelAdapter。 MyConfig.java @Bean @InboundChannelAdapter(value = "inputChannel", poller = @Poller(fixedRate = "5000"), autoStartup = "true") public MessageSource<File> input() { final FileRea
@Bean
@InboundChannelAdapter(value = "inputChannel", poller = @Poller(fixedRate = "5000"),
autoStartup = "true")
public MessageSource<File> input() {
final FileReadingMessageSource result = new FileReadingMessageSource();
result.setDirectory(new File("src/main/java/test"));
return result;
}
有没有一种方法可以停止适配器而不必为此定义特定的@Bean 您的解决方案如下:
"@'"+endpoint.getComponentName()+"'.stop()"
要使其最终看起来像:
@'myConfig.input.inboundChannelAdapter'.stop()
否则,我们就有这个SpEL:
@myConfig.input.inboundChannelAdapter.stop()
因此,它评估
myConfig
bean并尝试访问其input
属性。您的Springbean名为“input”,但SPEL正在查找属性或字段“input”。尝试将您的FileReadingMessagSource作为生命周期(而不是MessageSource)公开,以提供启动和停止方法
@'myConfig.input.inboundChannelAdapter'.stop()
@myConfig.input.inboundChannelAdapter.stop()