【发布时间】:2021-04-07 13:34:55
【问题描述】:
我正在重构一个旧的基于 Spring Batch XML 的应用程序以改用注释配置。我想了解如何将以下 XML 文件转换为基于注释的配置并保持相同的关注点分离。
为了便于讨论,这里举一个简单的例子。
job-config-1.xml
<job id="job1" xmlns="http://www.springframework.org/schema/batch">
<batch:step id="step1">
<batch:tasklet throttle-limit="20" task-executor="taskExecutor">
<batch:chunk reader="reader1"
writer="writer1" commit-interval="500" />
</batch:tasklet>
</batch:step>
</job>
job-config-2.xml
<job id="job2" xmlns="http://www.springframework.org/schema/batch">
<batch:step id="step2">
<batch:tasklet throttle-limit="20" task-executor="taskExecutor">
<batch:chunk reader="reader2"
writer="writer2" commit-interval="500" />
</batch:tasklet>
</batch:step>
</job>
job-config-3.xml
<import
resource="classpath*:/spring/jobs/job-config-1.xml" />
<import
resource="classpath*:/spring/jobs/job-config-2.xml" />
<batch:job id="jobFlow">
<batch:step id="step1" next="step2">
<job ref="job1" job-launcher="jobLauncher" />
</batch:step>
<batch:step id="step2">
<job ref="job2" job-launcher="jobLauncher" />
</batch:step>
</batch:job>
我想从 XML 配置转移到 Java 配置。我想为每个 XML 创建 3 个作业配置类。比如说 JobConfig1.java、JobConfig2.java 和 JobConfig3.java。
JobConfig3.java 将导入 JobConfig1.java 和 JobConfig2.java;但是,我无法在文档中找到这种结构的示例。我该怎么做?
注意:我不打算使用 Spring Boot。只需通过注解配置进行常规 Spring Batch。
【问题讨论】:
-
@Atmas 抱歉,但这并不能回答我的问题。请阅读我的问题以了解我不是在问如何将 XML 转换为注释配置。我在问如何创建一个模块化作业,以便将两个作业插入在一起以创建第三个作业。
-
@Atmas :是的,我在问别的问题。想象一下两个 Spring 批处理作业 Job1 和 Job2,每个都有 10 个步骤。并且每个都有自己的 Spring Configuration 类。现在想象一下将 Job1 和 Job2 组合成一个合并作业的 Job3。 Job3 会有它自己的 Spring Configuration 类。如果不清楚,请参阅我的 XML 示例。我想将每个 XML 文件转换成它自己的配置类。我想我已经说得很清楚了。
-
@Atmas 我知道什么是流。我在问如何将两个不同配置类中定义的两个作业插入到第三个配置类中定义的第三个作业中。我的问题更多是关于 Job bean 导入等,而不是关于 Spring Batch 流 API。如果此评论仍未澄清我的问题,并且您的回答仍然是“使用流程”,那么我想您和我之间的讨论到此结束,因为显然您想回答一个不同的问题。我要问多个工作配置的问题。谢谢你,祝你有美好的一天。
-
我已删除我的贡献,因为与您的帖子无关。
-
@Ping 我添加了一个答案,我相信它会用一个完整的例子回答你的问题。如果有帮助,请采纳:stackoverflow.com/help/someone-answers。否则,让我知道缺少什么来接受它。谢谢。
标签: java spring-batch