将 Spring 个批次连接到 Spring 个集成工作流程

Connecting Spring batch to Spring integration workflow



我正在尝试将 Spring 批处理和 Spring 集成结合到一个项目中。所以我的想法是 Spring 使用 StepBuilderFactory 的批处理使用返回 String 的自定义方法读取文件,而 .processor 使用 [=17 创建一个新的 Message<String> =] 并将该消息发送到频道...
所以从这里 Spring Integration 连接到那个频道并开始工作它的工作流程..

知道如何做到这一点吗?因为除了读取 String.processor 之外我没有得到任何结果,但我无法从那里达到 Spring 集成。 我读到了 remotechunkingmanagerstepbuilderfactory 但它不适合我的目的,因为它会自动设置特定类型

 @Bean
    public TaskletStep managerStep() throws Exception {

        return managerStepBuilderFactory.get("managerStep")
                .<String, String>chunk(5)
                .reader(readFile())
                .processor(new MessageProcess())//write String into Message and send it to Channel
                .writer(doSomething())//not important
                .build();
    }

public class MessageProcess implements ItemProcessor<String, String> {

    @Override
    public String process(String readString) throws Exception {
        Message<String> message = MessageBuilder.withPayload(item).build();
        channel().send(message); //sending message to channel
        return "item";

    }
}

    @Bean
    public IntegrationFlow workflow() {
        return IntegrationFlows
                .from(channel())
                .handle(checkMessage()) //checkMessage reads payload from Message<?> message
                .get();
    }

    @Bean
    public DirectChannel channel() {
        return new DirectChannel();
    }

要使 Spring 集成与注释配置或 Java DSL 一起工作,您需要确保在某些 @Configuration [=18] 上指定 @EnableIntegration =].或者考虑使用Spring Boot.

查看文档的更多信息:https://docs.spring.io/spring-integration/docs/5.2.3.RELEASE/reference/html/overview.html#configuration-enable-integration