gpt4 book ai didi

spring - 将 JSON 反序列化器用于批处理作业执行上下文

转载 作者:行者123 更新时间:2023-12-03 22:53:43 25 4
gpt4 key购买 nike

我正在尝试使用以下方法获取已存储在数据库中 Spring 批处理相关表中的作业执行列表:

List<JobExecution> jobExecutions = jobExplorer.getJobExecutions(jobInstance);

上述方法调用似乎调用了 JdbcExecutionContextDao 类中的 ExecutionContextRowMapper.mapRow 方法。

ExecutionContextRowMapper 使用 com.thoughtworks.xstream.Xstream.fromXML 方法对 DB 中存储的 JobExecutionContext 的 JSON 字符串进行反序列化。

看起来使用了不正确或默认的 xml 反序列化器来解码 JSONified JobExecutionContext。
在这种情况下是否有任何配置可以使用 JSON 反序列化器。

最佳答案

ExecutionContext 的序列化器/反序列化器可在 2.2.x 中配置。我们使用 ExecutionContextSerializer接口(interface)(提供两种实现,一种使用 java 序列化,一种使用您提到的 XStream impl)。要配置您自己的序列化程序,您需要实现 org.springframework.batch.core.repository.ExecutionContextSerializer并将其注入(inject) JobRepositoryFactoryBean (以便正确序列化/反序列化上下文)和 JobExplorerFactoryBean (重新序列化以前保存的上下文)。

需要注意的是,更改序列化方法会阻止 Spring Batch 反序列化之前保存的 ExecutionContexts .

关于spring - 将 JSON 反序列化器用于批处理作业执行上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19133395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com