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

定义内存中的JobRepository

孟鹏海
2023-03-14

我正在使用Spring Boot测试Spring Batch。我需要定义在Oracle数据库上工作的作业,但我不想在这个数据库中保存作业和步骤状态。我在文档中读到,我可以将内存存储库与MapJobRepositoryFactoryBean一起使用。

@Bean
    public JobRepository jobRepository() {
        MapJobRepositoryFactoryBean factoryBean = new MapJobRepositoryFactoryBean(new ResourcelessTransactionManager());
        try {
            JobRepository jobRepository = factoryBean.getObject();
            return jobRepository;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

我错过了什么?

编辑:我使用的是Spring Boot 1.5.3和Spring Batch 3.0.7

共有1个答案

乔望
2023-03-14

这里有几件事:

  1. 如果在applicationcontext中配置了数据源,默认情况下Spring Batch将尝试使用它。
  2. 为了在applicationcontext中有datasource可用时不使用datasource,您需要创建自己的batchconfigurer。您可以通过扩展DefaultBatchConfigurer.
  3. 来实现这一点
  4. 不要使用MapJobRepository,除非仅用于测试目的。我有许多问题(线程安全等),不建议用于生产。改为使用内存数据库(如HSQLDB)(您仍然需要创建自己的BatchConfigurer)。
 类似资料:
  • 我正在使用Spring Boot测试Spring Batch。我需要定义在Oracle数据库上工作的作业,但我不想在这个数据库中保存作业和步骤状态。我在文档中读到,我可以将内存存储库与MapJobRepositoryFactoryBean一起使用。 我错过了什么? 编辑:我使用的是Spring Boot 1.5.3和Spring Batch 3.0.7

  • 4.4 复合内存变量的定义 上节,我们介绍了汇编语言中六个最基本的数据类型,这些数据类型能满足程序设计中绝大多数情况的需要,但也存在需要更复杂的数据类型的情况。 下面介绍汇编语言所提供的三种复合数据类型的说明形式。 4.4.1 重复说明符DUP 从前面的内容里,我们知道了定义少量内存变量的定义形式,但如果在程序中要说明50个、100个、200个甚至更多的、同类型的内存变量时,若采用前面所学的方法,

  • 分配内存并不总是最简单的事情,同时通常 Rust 默认会负责它,不过经常自定义内存分配会变得必要。编译器和标准库目前允许在编译时切换目前默认使用的全局分配器。设计目前称作RFC 1183不过这里我们会教你如何获取你自己的分配器并运行起来。 默认分配器 编译器目前自带两个默认分配器:alloc_system和alloc_jemalloc(然而一些目标平台并没有 jemalloc)。这些分配器是正常的

  • 如果你需要提供自定义文件存储 – 一个普遍的例子是在某个远程系统上储存文件 – 你可以通过定义一个自定义的储存类来实现。你需要遵循以下步骤: 1. 你的自定义储存类必须是django.core.files.storage.Storage的子类: from django.core.files.storage import Storage class MyStorage(Storage):

  • 我使用的是spring Boot2.1.6,Release and swagger 2.9.2,除了我想简化内容之外,一切都很好。 首先,我想删除标题下的: 而且,我希望和在访问时打开,直到我单击名称。

  • 问题内容: 尽管我在权限块中设置了选项卡,但仍返回未定义。 但是在myScript.js中,以下返回未定义。 问题答案: 由于内容脚本有其自身的局限性, 仅在后台脚本和弹出脚本中可用。 如果您想使用,则将消息从content_script传递到后台脚本并使用。