我将动态设置
fixedRate
中的 @Scheduled
值。
为了实现这个目标,我尝试使用 SpEL 能力,如下所示:
@AllArgsConstructor
public class ContentSender {
@Scheduled(fixedRateString = "#{OuterProperties.rateForMessageReading}")
public void contentModelMessageSource() throws IOException {
}
}
具有目标属性的类:
@Getter
@Setter
@ConfigurationProperties("app")
public class OuterProperties {
private static final long WAITING_INTERVAL = 100;
private long rateForMessageReading;
}
在部署阶段我收到的结果是:
SpelEvaluationException:EL1008E:在“org.springframework.beans.factory.config.BeanExpressionContext”类型的对象上找不到属性或字段“outerProperties” - 可能不是公共的或无效?
我做错了什么?
问题是我只使用
@ConfigurationProperties
。当我添加 @Configuration
时,问题就消失了。
@Getter
@Setter
@Configuration
@ConfigurationProperties("app")
public class OuterProperties {
private static final long WAITING_INTERVAL = 100;
private long rateForMessageReading;
}