我正在迁移到Spring Batch 5,但在迁移过程中遇到了一个问题. spring 第五批已经改变了default serializer.根据该文档,您需要确保Jackson序列化程序位于您的类路径上,以便能够使用它.但是,它没有指定如何启用序列化程序的使用.

This documentation表示您可以使用@EnableBatchProcessing注释,在我发现的其他地方,您可以扩展DefaultBatchConfiguration类来调整此配置.然而,Spring Boot Documentation不鼓励这样做,并指出这将导致Spring Boot to Backoff配置.

当我使用@EnableBatchProcessingDefaultBatchConfiguration时,我们的工作不再像过go 那样启动(我使用--spring.batch.job.name参数).

有没有办法使用Spring Boot3提供的默认配置并使用Jackson序列化程序,而不需要完全接管Spring Batch的配置?问题是,我有使用Jackson序列化程序/反序列化程序的历史数据,这些数据不再能被升级处理.

推荐答案

在没有完全控制批处理配置(即使用@EnableBatchProcessing或扩展DefaultBatchConfiguration)的情况下,Spring Boot3不提供定制序列化程序的功能.

你可以要求那个功能,我会支持它的.

同时,您可以在应用程序上下文中将序列化程序定义为一个Bean,并告诉Spring Batch在@EnableBatchProcessing(executionContextSerializerRef="yourJacksonSerializer")或扩展DefaultBatchConfiguration和重写getExecutionContextSerializer中使用它.

我在 spring IO here上谈到了这一点.

Java相关问答推荐

当在具有约束布局的AlertDialogue内部使用时,回收器视图布局宽度很奇怪

Kotlin ReadWriteProperty:无法使用T作为具体化类型参数.改为使用类

是否可以从@ TrustMapping中删除特定方法的基路径?

我可以从Java模块中排除maven资源文件夹吗?

Cosmos Change Feed Process Lag远远超过收集中的记录数量

转换为Biggram

Java WireMock定义存根在Cucumber并行执行的多线程测试中失败

Android Studio—java—在onBindViewHolder中,将断点和空白添加到BackclerView中

当我已经安装了其他版本的Java时,如何在Mac OSX 14.3.1上安装Java 6?

当涉及到泛型时,类型推理在Java中是如何工作的?

相同的Java SerializedLambda为implMethodKind返回不同的结果

生成桥方法以解决具有相同擦除的冲突方法

Java中将文本拆分为数字或十进制数字和字符串

为什么有两种实现来检索数组类的组件类型?

无法将GSON导入到我的JavaFX Maven项目

控制器建议异常处理

当我将JTextField的getText函数与相等的String进行比较时;t返回true

AspectJ编织外部依赖代码,重新打包jar并强制依赖用户使用它

PhantomReference无法访问时会发生什么?

当我try 返回可选时,Mock无法正常工作