Spring Batch 5继承DefaultBatchConfiguration失效问题求助
解决Spring Batch 5自定义配置中JobRepository Bean冲突问题
问题原因
Spring Boot 3默认禁止Bean定义覆盖,当你继承DefaultBatchConfiguration自定义批处理配置时,Spring Batch核心配置会创建jobRepository Bean,同时Spring Boot的Batch自动配置也会尝试创建该Bean,二者产生冲突引发报错。
解决方案
方法1:排除Spring Batch自动配置类(推荐)
在Spring Boot启动类上添加注解,禁用Spring Boot自带的Batch自动配置,让自定义的DefaultBatchConfiguration完全接管批处理配置:
@SpringBootApplication(exclude = BatchAutoConfiguration.class) public class YourBatchApplication { public static void main(String[] args) { SpringApplication.run(YourBatchApplication.class, args); } }
方法2:允许Bean定义覆盖(临时方案)
若暂时无法排除自动配置,可在配置文件中开启Bean覆盖允许:
spring.main.allow-bean-definition-overriding=true
该方法能快速绕过错误,但可能隐藏其他配置冲突,不建议生产环境使用。
验证
修改完成后重启应用,jobRepository Bean将由自定义的MyBatchConfiguration生成,不会再出现覆盖冲突报错。
内容的提问来源于stack exchange,提问作者Jan
相关产品推荐
相关产品推荐

