我正在编写一个 Spring Batch 应用程序,其中包含需要按特定顺序执行的不同作业。
为了做到这一点,我通过 JobLauncher 手动运行作业,并通过在属性文件中添加以下属性来禁用 Spring 批处理提供的自动启动功能:
spring.batch.job.enabled=false
我想直接在代码中禁用此功能,而不是依赖任何人都可以访问和修改的配置文件。
有没有办法做到这一点?
@Bean
@ConditionalOnMissingBean
@ConditionalOnProperty(prefix = "spring.batch.job", name = "enabled", havingValue = "true", matchIfMissing = true)
public JobLauncherCommandLineRunner jobLauncherCommandLineRunner(
JobLauncher jobLauncher, JobExplorer jobExplorer) {
JobLauncherCommandLineRunner runner = new JobLauncherCommandLineRunner(
jobLauncher, jobExplorer);
String jobNames = this.properties.getJob().getNames();
if (StringUtils.hasText(jobNames)) {
runner.setJobNames(jobNames);
}
return runner;
}
这是来自BatchAutoConfiguration
.
据此判断,您可以尝试添加自己的实现JobLauncherCommandLineRunner
它什么也不做。这将影响@ConditionalOnMissingBean
它不应该运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)