Java spring批注@Scheduled.fixedDelayString不支持Spel

Java spring批注@Scheduled.fixedDelayString不支持Spel,java,spring,spring-annotations,spring-el,Java,Spring,Spring Annotations,Spring El,我想在属性文件中以秒为单位配置固定延迟,然后在@Scheduled注释中将其转换为毫秒 我希望这能奏效: @Scheduled(fixedDelayString=“#{${my.scheduler.fixed.delay}*1000}”) 但它抛出了一个例外: 原因:java.lang.IllegalStateException:遇到无效 @计划的方法“myMethod”:无效的fixedDelayString值“#{5”* 1000}”-无法在处解析为整数 org.springframewo

我想在属性文件中以秒为单位配置
固定延迟
,然后在
@Scheduled
注释中将其转换为毫秒

我希望这能奏效:

@Scheduled(fixedDelayString=“#{${my.scheduler.fixed.delay}*1000}”)
但它抛出了一个例外:

原因:java.lang.IllegalStateException:遇到无效 @计划的方法“myMethod”:无效的fixedDelayString值“#{5”* 1000}”-无法在处解析为整数 org.springframework.scheduling.annotation.ScheduledAnotationBeanPostProcessor.processScheduled(ScheduledAnotationBeanPostProcessor.java:384) ~[spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]at org.springframework.scheduling.annotation.ScheduledAnotationBeanPostProcessor$1.doWith(ScheduledAnotationBeanPostProcessor.java:227) ~[spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]

${my.scheduler.fixed.delay}
已正确解析,但表达式未解析

我试图配置自己的
StringValueResolver

私有静态类CustomValueResolver
实现StringValueResolver{
私有最终可配置beanFactory beanFactory;
私有final ExpressionParser ExpressionParser;
公共CustomValueResolver(最终可配置beanFactory beanFactory,最终表达式解析器ExpressionParser){
this.beanFactory=beanFactory;
this.expressionParser=expressionParser;
}
@凌驾
公共字符串resolveStringValue(
最终字符串(标准字符串){
字符串值=this.beanFactory.resolveEmbeddedValue(strVal);
if(value.startsWith(“#{”)){
value=this.expressionParser.parseExpression(value).getValue(String.class);
}
返回值;
}
}
但是我没有找到注入自定义
CustomValueResolver
的方法


我的方法是对的还是错的?还有其他简单的方法吗?

从Spring Framework 4.3.RC1开始就支持这种方法。请尝试一下。有什么解决方案吗?@Normal现在我在没有SPEL的情况下工作,等待4.3.0。RELEASE@Normal,现在在4.3.x中运行良好