参考 SpEL 的 @Scheduled 中的 bean.property

问题描述 投票:0回答:1

我将动态设置

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” - 可能不是公共的或无效?

我做错了什么?

java spring configuration spring-annotations spring-expression-language
1个回答
0
投票

问题是我只使用

@ConfigurationProperties
。当我添加
@Configuration
时,问题就消失了。

@Getter
@Setter
@Configuration
@ConfigurationProperties("app")
public class OuterProperties {
    private static final long WAITING_INTERVAL = 100;
    private long rateForMessageReading;
}
© www.soinside.com 2019 - 2024. All rights reserved.