当前位置: 首页 > 知识库问答 >
问题:

Spring批处理-如何使用JavaConfig全局设置RunDidCrementer

贺飞
2023-03-14

IM使用Spring Batch和JavaConfig(无XML)开发项目。我正在使用一个自动生成的作业BuilderFactory创建作业。

是否可以全局设置工厂的递增器?

返回jobBuilderFactory.get("jobName")。

很抱歉,如果这是一个转储问题,但我是SpringBatch新手,没有找到有效的解决方案。

共有1个答案

海信鸥
2023-03-14

在XMLConfig中,您将使用bean定义继承,但您说过不使用XML。

因为Java配置没有与XML bean定义继承等价的继承(请参阅此处的详细信息:https://stackoverflow.com/a/23266686/5019386),您可以在配置中全局创建RunIdIncrementer,并在作业定义中使用它:

public JobParametersIncrementer jobParametersIncrementer() {
    return new RunIdIncrementer();
}

public JobBuilder getJobBuilder(String jobName) {
    return jobBuilderFactory.get(jobName)
            .incrementer(jobParametersIncrementer());
}

@Bean
public Job job1() {
    return getJobBuilder("job1")
            .start(step())
            .build();
}

@Bean
public Job job2() {
    return getJobBuilder("job2")
            .start(step())
            .build();
}

但正如在评论中所说,您最终将运行。id每个作业不连续的值。

 类似资料:
  • 我正在尝试让Spring Batch2.2与JavaConfig一起工作。 现在,他们有一个注释,它设置了很多东西。默认注释为其职务数据使用datasource,但我们不想保存此数据,也不想为其创建表。文档中提到了一些关于自定义的内容,但我无法使其工作: 用户必须提供作为上下文中的bean,或者在配置类本身中实现,例如: 在我们的旧版本中,我们可以使用类,因此它将所有数据保存在内存中。是否可以使用

  • 希望创建一个DynamoDB全局表来存储客户信息。我的问题是,我目前的模式是监听此表上的更改,并使用Lambda触发器发送电子邮件更新。 i、 e.您的个人资料信息已更改。如果不是你。。 我现在是否需要在每个区域中使用该Lambda?数据复制是否意味着每个区域都会触发该Lambda?

  • 问题内容: 有什么方法可以简单地为gradle设置全局的,系统范围的代理? 是的,我知道 当前 文件中有.etc设置,但它仅在实际项目中有效。但 __ 我不会在每个gradle项目中都进行设置 而且由于我的本地网络配置,我不会更改项目的源代码。 那么,是否有任何“ global gradle.properties”文件? 问题答案: 是的,似乎有可能。见这里,尤其是: 我们可以定义一个文件并在该文

  • 我是新的Spring批与引导。我在使用postgres配置jobRepositoryFactory bean作为数据库时遇到了一个问题。下面是我的配置类。 下面是Spring boot App run的输出 我已经在我的configuration类中配置了bean。我错过了什么?

  • 批处理脚本可以使用网络设置。 命令用于更新,修复或查看网络或网络设置。 本章介绍命令可用的不同选项。 编号 命令 描述 1 NET ACCOUNTS 查看计算机的当前密码和登录限制。 2 NET CONFIG 显示当前的服务器或工作组设置。 3 NET COMPUTER 添加或删除附加到Windows域控制器的计算机。 4 NET USER 该命令可以用于查看特定用户帐户的详细信息。 5 NET