java - 使用默认值参数化 Spring @Scheduled

标签 java scheduled-tasks spring-scheduled

我需要使用属性文件中的值(如果存在)参数化 @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 * * * * *}")

关于java - 使用默认值参数化 Spring @Scheduled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39248256/

相关文章:

java - Eclipse 4 RCP Vogel 教程 : Exit menu item does not appear

java - 是什么导致计划线程不在 Java 中运行?

java - 我需要在 Java 中长时间(几天) sleep

python - 如何在不使用信用卡或没有钱的情况下在 Heroku 中安排 Django 后台任务?

java - JUnit 使用 Mockito 测试异步方法

Spring 更新调度程序

java - 同时使用两个线程从arraylist中读取

java - Java中的命名参数习语

java - 使用 Spring WebFlux 为 Mono<Entity> 添加值

java - 如何在运行时有条件地运行或启动 Spring 计划作业?