我正在编写一个弹簧批处理应用程序,其中包含需要按特定顺序执行的不同作业。 为了做到这一点,我通过JobLauncher手动运行作业,并通过在我的属性文件中添加以下属性来禁用Spring批处理提供的自动启动功能:
spring.batch.job.enabled=false
我想直接在代码中禁用此功能,而不是依赖任何人都可以访问和修改的配置文件。
有办法吗?
答案 0 :(得分:3)
061 data1
238 data6
264 data7
439 data9
682 help
1264 moredata
2305 data2
4080 data3
5640 otherdata
9251 data4
11844 data5
33940 data8
这是@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
,但不应该运行。