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 =真正的」被繞過。雖然比沒有好。 –