使用Spring Integration将文件复制到另一个目录的基本示例引发异常

时间:2018-12-09 02:19:19

标签: spring-integration spring-integration-dsl

我是Spring Integration的初学者。我写的这段代码是在春季启动时发出的,它引发了异常“名为'messageSource'的Bean应该是'org.springframework.context.MessageSource'类型的,但实际上是'org.springframework.integration.file.FileReadingMessageSource类型的'“

代码:

@Configuration
/*@EnableIntegration annotation designates this class as a Spring Integration configuration.*/
@EnableIntegration
public class SIConfig {

    @Bean
    public MessageChannel channel() {
        return new DirectChannel();
    }
    //bydefault name of method
    @Bean
    public MessageSource messageSource() {
        FileReadingMessageSource ms= new FileReadingMessageSource();
        ms.setDirectory(new File("C:\\Users\\payal\\Pictures"));
        ms.setFilter(new SimplePatternFileListFilter("*.mp4"));
        return ms;
    }

    @Bean
    public MessageHandler handler() {
        FileWritingMessageHandler handler= new FileWritingMessageHandler(new File("C:\\Users\\payal\\Documents\\batch7"));
        handler.setFileExistsMode(FileExistsMode.IGNORE);
        handler.setExpectReply(false);
        return handler;

    }

    @Bean
    public IntegrationFlow flow() {
        return IntegrationFlows.from(messageSource(),  configurer -> configurer.poller(Pollers.fixedDelay(10000)))
                .channel(channel())
                .handle(handler()).get();
    }

}

由于使用引导程序,因此会自动管理版本

在GitHub上也上传了代码:

https://github.com/LearningNewTechnology/SpringIntegrationOne

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

将Bean的名称更改为例如

@Bean
public MessageSource myMessageSource() {

Spring框架(上下文)具有另一种类型MessageSource,Spring Boot自动配置会创建一个名称为messageSource的类型的bean,以便您的bean与之冲突。