1

我正在尝试构建一个弹簧批处理应用程序,该应用程序仅在文件进入目录后才开始作业。为此,我需要一个文件轮询器和类似 Spring 参考手册中的片段:

public class FileMessageToJobRequest {
    private Job job;
    private String fileParameterName;

    public void setFileParameterName(String fileParameterName) {
        this.fileParameterName = fileParameterName;
    }

    public void setJob(Job job) {
        this.job = job;
    }

    @Transformer
    public JobLaunchRequest toRequest(Message<File> message) {
        JobParametersBuilder jobParametersBuilder =
        new JobParametersBuilder();

        jobParametersBuilder.addString(fileParameterName,
        message.getPayload().getAbsolutePath());

        return new JobLaunchRequest(job, jobParametersBuilder.toJobParameters());
    }
}

我想用配置类来管理一切,但我真的不知道如何让它工作。

4

1 回答 1

0

你的问题不清楚。最好有一些可行的东西,然后是一些你自己的 PoC 或尝试完成任务。

但无论如何,您似乎想避免 XML 配置,只使用 Java 和注释配置。

为此,我建议您查看参考手册并在文件支持一章中找到此示例:

@Bean
@InboundChannelAdapter(value = "fileInputChannel", poller = @Poller(fixedDelay = "1000"))
public MessageSource<File> fileReadingMessageSource() {
     FileReadingMessageSource source = new FileReadingMessageSource();
     source.setDirectory(new File(INBOUND_PATH));
     source.setFilter(new SimplePatternFileListFilter("*.txt"));
     return source;
}
于 2016-08-22T18:39:56.730 回答