当前位置: 首页 > 知识库问答 >
问题:

使用默认值参数化Spring@Scheduled

宇文鸣
2023-03-14

我需要使用属性文件中的值(如果存在)或默认值(如果没有)参数化@Scheduled方法。

我们可以通过以下方式从配置文件属性参数化:

@Scheduled(cron = "${my.task.cron-exec-expr}")
public void scheduledTask() {
    // do something
}

但是如果属性不存在,我们将有一个运行时异常。

我尝试使用默认值的@ConfigurationPropertiesbean,但没有成功:

@Component
@ConfigurationProperties(prefix = "my.task")
public class MyTaskProperties {

    private String cronExecExpr = "*/5 * * * * *";

    // getter and setter
}

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

共有1个答案

华良才
2023-03-14

可以在占位符中添加默认值,如下所示:

@Scheduled(cron = "${my.task.cron-exec-expr:*/5 * * * * *}")
 类似资料:
  • 问题内容: 如果未将显式值传递给方法,我想用一些默认值初始化方法的参数-像这样: 我得到了错误: 我该如何解决? 问题答案: 这里常见的习惯用法是将默认值设置为一些哨兵值用于此目的,这是典型值,然后您可以检查该值。 您可能还会看到用于哨兵的实例。 后一个版本的优点是可以传递给函数,但有一些缺点(请参见下面@larsmans的评论)。如果您不认为需要将有意义的参数传递给您的方法,那么我建议您使用它。

  • 对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。 注意,默认参数值应该是一个参数。更加准确的说,默认参数值应该是不可变的——这会在后面的章节中做详细解释。从现在开始,请记住这一点。 使用默认参数值 例7.5 使用默认参数值 #!

  • 问题内容: 我正在使用Jenkins的 “扩展选择参数” 插件,并希望安排构建定期运行而无需人工干预。 从下拉列表中选择构建的参数。 该参数的下拉列表是通过外部脚本生成的,我一直想选择最高的值作为默认值。 有没有办法选择最上面的元素作为计划作业的默认值? 我阅读了一些使用url远程运行作业的方法,但我希望可以通过仅更改作业配置来实现此目的,从而不必为它管理单独的脚本。 我的Jenkins实例在Li

  • 我如何在从下面的API生成的swagger中定义属性的默认值? Swashbuckle生成OrderDirection作为所需参数。我希望它是可选的,并向客户机指示默认值(不确定swagger是否支持此选项)。 我不喜欢使属性类型为空。还有其他选择吗?理想情况下使用内置类... 我用的是虚张声势的皮带扣。AspNetCore-https://docs.microsoft.com/en-us/asp

  • Scala 函数 Scala 可以为函数参数指定默认参数值,使用了默认参数,你在调用函数的过程中可以不需要传递参数,这时函数就会调用它的默认参数值,如果传递了参数,则传递值会取代默认值。实例如下: object Test { def main(args: Array[String]) { println( "返回值 : " + addInt() ); } def

  • Scala允许您指定函数参数的默认值。 可以选择在函数调用中省略这种参数的参数,在这种情况下,相应的参数将使用默认值填充。 如果指定其中一个参数,则第一个参数将使用该参数传递,第二个参数将从默认值中获取。 尝试以下示例,它是为函数指定默认参数的示例 - 例子 (Example) object Demo { def main(args: Array[String]) { print