0
我在写谁,包括需要按照特定的顺序执行不同的工作弹簧批处理应用程序启动。 为了做到这一点,我手动运行的作业通过JobLauncher,我禁用通过添加我的财产下列财产由Spring批量提供的自动启动功能文件:春季启动/关闭一批批汽车通过代码
spring.batch.job.enabled=false
我想禁用此功能直接在代码中,而不是依赖任何人都可以访问和修改的配置文件。
有没有办法做到这一点?
我在写谁,包括需要按照特定的顺序执行不同的工作弹簧批处理应用程序启动。 为了做到这一点,我手动运行的作业通过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
,它不应该运行。
你可以用JavaConfig尝试 – Siddhesh
罗杰托马斯的[answer](https://stackoverflow.com/questions/29072628/how-to-override-spring-boot-application-properties-programmatically)有帮助吗? Idea始终将代码硬编码值放在代码中。 –
@SabirKhan您好,感谢您的回复。这是工作,但它可以通过在属性文件中明确设置“spring.batch.job.enabled =真正的”被绕过。虽然比没有好。 –