使用默认值对Spring @Scheduled进行参数化

10

如果存在,我需要从我的属性文件中获取值来参数化一个@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
}

如何避免这种情况并传递默认值?

1个回答

21

你可以像这样在占位符中添加默认值:

@Scheduled(cron = "${my.task.cron-exec-expr:*/5 * * * * *}")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接