java—在spring boot@scheduled中使用fixeddelaystring,而不直接放置configuration属性

daolsyd0  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(374)

这是我的问题。我在用 @Scheduled 在我的spring启动应用程序中,除了一些方法之外,还可以执行一些常规任务。
对于配置计划,我使用 fixedDelayString & initialDelayString 的参数 @Scheduled 具体如下:

@Scheduled(
      initialDelayString = "${my.wanted.delayInSeconds}",
      fixedDelayString = "${my.wanted.delayInSeconds}"
  )

这是应该的。
我现在遇到的问题是,在应用程序的属性文件中,我必须将配置属性设置为:

my.wanted.delayInSeconds=10

如果我对Spring属性使用任何其他受支持的案例,例如kebab案例:

my.wanted.delay-in-seconds=10

应用程序无法启动,出现异常:

Caused by: java.lang.IllegalStateException: Encountered invalid @Scheduled method 'myMethod': Could not resolve placeholder 'my.wanted.delayInseconds' in value "${my.wanted.delayInSeconds}"

这是有意义的,因为这个值没有定义&spring似乎没有为 fixedDelayString & initialDelayString 占位符。
问题是,这似乎真的很容易打破。我在读一本平常的书 @ConfigurationProperties 上课也是。所以intellij一直建议我在属性文件中使用kebab case版本。 my.wanted.delay-in-seconds . 我同意-在那里更容易阅读。但如果我这样做,应用程序将无法启动。
所以我的问题是:有没有办法
或者,让spring做通常的转换,这样烤羊肉串的情况也能工作吗?
或者,从配置属性类提供延迟字符串,而不是直接使用属性?
谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题