这是我的问题。我在用 @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做通常的转换,这样烤羊肉串的情况也能工作吗?
或者,从配置属性类提供延迟字符串,而不是直接使用属性?
谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!