我使用的是Spring 4。 我运行Spring上下文,如:
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
context.scan(BASE_PACKAGE);
context.refresh();
我使用注入环境变量,如:
@Value("#{systemEnvironment['ENV_VAR'] ?: 60}")
private int someDelay;
它的效果非常好。
问题是如何使这项工作:
@Scheduled(fixedDelayString = "${ENV_VAR ?: 60000}")
public void runSomeTask(){
System.out.println("hello ");
}
现在春天抛出异常:
Initialization of bean failed; nested exception is java.lang.IllegalStateException: Encountered invalid @Scheduled method 'runSomeTask': Invalid fixedDelayString value "${ENV_VAR ?: 60000}" - cannot parse into integer
我想我需要创建一个负责处理这些值的BeanPostProcessor,但我不知道究竟是哪一个。
P.S。弹出开箱即可正常工作。
答案 0 :(得分:0)
试试这个:
<强>#{&#39; $ {ENV_VAR}&#39; == null? &#39; 60000&#39; :&#39; $ {ENV_VAR}&#39; } 强>