问题原因:作业未注册,Spring Batch 的 Job 在应用程序启动时需要在 JobRegistry 中注册。如果作业在启动时未正确注册,Spring Batch 就无法找到它。

解决办法:在配置类(这个类通常标注有 @Configuration 注解)中添加JobRegistryBeanPostProcessor类,如下所示。

    @Autowired
    private JobRegistry jobRegistry;

    // 注册 JobRegistryBeanPostProcessor
    @Bean
    public JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor() {
        JobRegistryBeanPostProcessor processor = new JobRegistryBeanPostProcessor();
        processor.setJobRegistry(jobRegistry);
        return processor;
    }

更多推荐