使用默认值参数化 Spring @Scheduled
Parameterizing Spring @Scheduled with default value
我需要使用我的属性文件中的值(如果存在)或默认值(如果不存在)来参数化 @Scheduled
方法。
我们可以通过以下方式从配置文件 属性 进行参数化:
@Scheduled(cron = "${my.task.cron-exec-expr}")
public void scheduledTask() {
// do something
}
但如果 属性 不存在,我们将出现运行时异常。
我尝试使用具有默认值的 @ConfigurationProperties
bean,但没有成功:
@Component
@ConfigurationProperties(prefix = "my.task")
public class MyTaskProperties {
private String cronExecExpr = "*/5 * * * * *";
// getter and setter
}
如何避免这种情况并传递默认值?
您可以像这样在占位符中添加默认值:
@Scheduled(cron = "${my.task.cron-exec-expr:*/5 * * * * *}")
我需要使用我的属性文件中的值(如果存在)或默认值(如果不存在)来参数化 @Scheduled
方法。
我们可以通过以下方式从配置文件 属性 进行参数化:
@Scheduled(cron = "${my.task.cron-exec-expr}")
public void scheduledTask() {
// do something
}
但如果 属性 不存在,我们将出现运行时异常。
我尝试使用具有默认值的 @ConfigurationProperties
bean,但没有成功:
@Component
@ConfigurationProperties(prefix = "my.task")
public class MyTaskProperties {
private String cronExecExpr = "*/5 * * * * *";
// getter and setter
}
如何避免这种情况并传递默认值?
您可以像这样在占位符中添加默认值:
@Scheduled(cron = "${my.task.cron-exec-expr:*/5 * * * * *}")