在我的应用程序中,我用@Scheduled(cron="${my.cron.prop}")
注释了方法
我在属性文件中没有my.cron.prop
,我的工作只是没有开始,但是应用程序成功启动。
但是当我添加依赖时:
compile ("de.codecentric:spring-boot-admin-starter-client:1.5.7")
我的应用程序无法启动:
Caused by: java.lang.IllegalStateException: Encountered invalid @Scheduled method 'reportCurrentTime': Could not resolve placeholder 'my.cron.prop' in value "${my.cron.prop}"
我该如何解决?
预期的行为-如果没有提供财产,请不要开始工作
答案 0 :(得分:2)
我想您的应用程序不是@EnableScheduling
, spring-boot-admin-starter-client 是。
您可以通过提供默认值来避免这种情况:查看其他答案
解决此问题的更好方法是使用专用组件在属性可用时启动您的工作
@Component
@ConditionalOnProperty( name = "my.cron.prop" )
public class Tasks {
@Scheduled(cron = "${my.cron.prop}")
public void task() {
/*do your suff*/
}
答案 1 :(得分:1)
您可以尝试以下操作:@Scheduled(cron="${my.cron.prop:0 0 0 1 1 ? 2090}")
在这种情况下,如果找不到该属性,Spring将使用您提供的默认值(在我的示例中为2090年触发)。