我试图在一个项目中结合Spring批处理和Spring集成。因此,我的想法是,Spring Batch使用stepbuilderFactory
使用自定义方法读取文件,返回字符串
,而.processor
使用MessageBuilder
创建新的消息
,并将该消息发送到通道中...
所以从这里开始,Spring Integration连接到该通道,并开始工作其工作流...
知道如何实现吗?因为除了将读取的字符串
输入.processor
之外,我没有得到任何结果,但是我无法从那里获得Spring集成。我读过RemoteHunkingManagerStepBuilderFactory
,但它不适合我的目的,因为它会自动设置特定的类型
@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 Integration与注释配置或Java DSL一起工作,您需要确保在您的@configuration
类上指定了@enableIntegration
。或者考虑使用Spring靴。
有关文档的更多信息:https://docs.spring.io/spring-integration/docs/5.2.3.release/reference/html/overview.html#configuration-enable-integration
(i)完成步骤(b)的正确方法是什么?我注意到Apache Avro项目提供了一个名为avro-tools-1.8.1.jar的jar来从模式文件生成java类。但是,我不确定如何在基于SBT的工作流中使用这个jar文件。 (ii)我注意到的另一个选择是有第三方sbt插件(如:sbt-avrohugger、scavro、sbt-avro等)。有推荐的sbt插件吗?因为这些是第三方插件,我不能确定哪
我试图使用Spring/AspectJ集成,但运气不好。Spring版本是3.2.17(是的,我知道有点旧)。 以下是我的相关配置: pom.xml: 应用程序上下文。xml: spect.java(相关类): 我倒了很多在线教程,运气不好。有人能指出我做错了什么吗? 杰森
EBean是一个无状态的ORM。http://ebean-orm.github.io/ EBean提供了一个Spring Boot工件http://ebean-orm.github.io/docs/setup/spring#spring-boothttps://github.com/ebean-orm/avaje-ebeanorm-spring 但在这种情况下,EBean直接读取jdbc连接细节,
<罢工> 错误: 没有类型为'org.springframework.test.web.servlet.mockMVC'的合格bean可用:至少需要1个符合autowire候选的bean。依赖项注释:{@org.springframework.beans.factory.annotation.autowire(required=true)}位于org.springframework.beans.f
我想写一个批处理,从一个表读取数据,对数据进行分区,并将其交给一个spring集成工作流。 批处理和集成工作流都是独立的maven项目,集成项目是批处理项目中的依赖项。 我的批处理有一个非常小的作业上下文(xml)。只有一个分区器和一个任务。在这个任务中,我将数据(为了测试目的而硬编码)放入一个spring集成网关。之后,我将消息传递到outbound-channel-adapter中,它只是将消
我正在运行节奏,卡桑德拉使用 docker run -e CASSANDRA_SEEDS=10.x.x.x e 超级数据库/服务器运行:。并成功运行。 Azure cosmos表示,任何运行在Cassandra上的系统都可以使用Azure cosmos,使用提供的cosmos cassandra APi,通过修改客户端连接创建代码,例如:GO app示例代码: Func Get会话(cosmosC