我正在迁移到Spring Batch 5,但在迁移过程中遇到了问题。Spring Batch 5更改了默认的序列化程序。根据这个文档,你需要确保Jackson序列化器在你的类路径上,以便能够利用它。但是,它没有指定如何启用序列化程序的使用。
This documentation表示你可以使用@EnableBatchProcessing
注解,在其他地方我发现你可以扩展DefaultBatchConfiguration
类来调整这个配置。但是Sping Boot 文档不鼓励这样做,并指出这将导致Sping Boot 回退配置。
当我使用@EnableBatchProcessing
或DefaultBatchConfiguration
时,我们的作业不再像以前那样启动(我使用--spring.batch.job.name
参数)。
有没有一种方法可以使用Sping Boot 3提供的默认配置并使用Jackson序列化器,而无需完全接管Spring Batch的配置?问题是,我有历史数据利用Jackson串行器/并行化器,不再可以处理的升级。
1条答案
按热度按时间czq61nw11#
Sping Boot 3不提供在不完全控制Batch配置的情况下自定义序列化器的功能(即通过使用
@EnableBatchProcessing
或扩展DefaultBatchConfiguration
)。你可以要求这个功能,我会支持它。
同时,您可以在应用程序上下文中将序列化器定义为bean,并告诉Spring Batch通过
@EnableBatchProcessing(executionContextSerializerRef="yourJacksonSerializer")
或扩展DefaultBatchConfiguration
并重写getExecutionContextSerializer
来使用它。我在Spring IO here上谈到了这一点。