使用Spring

时间:2018-01-17 11:58:31

标签: java spring

我使用的是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。弹出开箱即可正常工作。

1 个答案:

答案 0 :(得分:0)

试试这个:

  

<强>#{&#39; $ {ENV_VAR}&#39; == null? &#39; 60000&#39; :&#39; $ {ENV_VAR}&#39; }