Java 使用Nosql配置SpringBatch

Java 使用Nosql配置SpringBatch,java,spring-batch,marklogic,Java,Spring Batch,Marklogic,我们需要在已经使用NoSQL产品(MarkLogic)的应用程序中使用spring批处理。我知道,作为一个先决条件,SpringBatch使用一些关系表进行基础设施管理和监控,如批处理状态等 springbatch是否提供了一种方法,我们可以通过该方法将其配置为与NoSQL这样的产品一起工作 spring批处理可能使用datasource,但在某些情况下,您可能不希望将域对象持久化到数据库。一个原因可能是速度;在每个提交点存储域对象需要额外的时间。另一个原因可能是您不需要为特定的工作保持状态。因

我们需要在已经使用
NoSQL
产品(
MarkLogic
)的应用程序中使用spring批处理。我知道,作为一个先决条件,SpringBatch使用一些关系表进行基础设施管理和监控,如批处理状态等


springbatch
是否提供了一种方法,我们可以通过该方法将其配置为与
NoSQL
这样的产品一起工作

spring批处理可能使用datasource,但在某些情况下,您可能不希望将域对象持久化到数据库。一个原因可能是速度;在每个提交点存储域对象需要额外的时间。另一个原因可能是您不需要为特定的工作保持状态。因此,Spring batch提供了作业存储库的内存映射版本:

<bean id="jobRepository" class="org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean">
<property name="transactionManager" ref="transactionManager"/> </bean>

Spring批处理作业存储库基于JDBC DAO并支持一组紧密的RDBM。例如,在SpringBatch 2.2.5中,它的DB2、HSQL、SQLSERVER、MYSQL、ORACLE、POSTGRES、SYBASE、H2
请参阅spring-batch-inframework-x.x.x.jar中的org.springframework.batch.support.DatabaseType类

正如Rafik Beldi中提到的,还支持基于内存的作业存储库。如果你不在乎过去的死刑执行情况,这可能是一个很好的解决办法。内存中的数据库(如支持基于文件的持久化)支持我的帮助(尽管从我的角度来看有限且不可靠)

如果您必须支持NoSQL,您需要开发自己的或在github中寻找一些现有项目。
基本上,首先覆盖JobRepositoryFactoryBean并添加您自己的DAO(位于 SpringBatch核心jar中的org.springframework.batch.core.repository包)
有关更多信息:

  • 存储库中的非标准数据库类型
  • Spring批处理的一些项目
  • 也许我的问题会增加一些信息

  • 如果将NoSQL对作业存储库的支持计划到最近的特性,那么Spring批处理团队的人员将给我们提供一些信息,这将是非常好的

    不是很有用,因为这种方法只能用于spring建议的测试和快速原型设计。