Подключение Spring Spring к рабочему процессу интеграции Spring - PullRequest
0 голосов
/ 04 февраля 2020



Я пытаюсь объединить Spring Batch и Spring Integration в одном проекте. Поэтому моя идея состоит в том, что Spring Batch с использованием StepBuilderFactory читает файл с помощью пользовательского метода, возвращая String, в то время как .processor создает новый Message<String> с использованием MessageBuilder и отправляет это сообщение в канал ...
Итак, отсюда Spring Integration подключается к этому каналу и начинает работать с его рабочим процессом.

Есть идеи, как это сделать sh? так как я не получаю никаких результатов, кроме чтения String в .processor, но я не могу достичь интеграции с Spring оттуда. Я читал о remotechunkingmanagerstepbuilderfactory, но он не подходит для моих целей, потому что он автоматически устанавливает специфический c тип

 @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();
    }

1 Ответ

0 голосов
/ 05 февраля 2020

Чтобы Spring Integration работала с конфигурацией аннотаций или Java DSL, необходимо быть уверенным, что вы указали @EnableIntegration в некоторых ваших @Configuration классах. Или рассмотрите возможность использования Spring Boot.

См. Дополнительную информацию в документах: https://docs.spring.io/spring-integration/docs/5.2.3.RELEASE/reference/html/overview.html#configuration -enable-интеграции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...