gpt4 book ai didi

spring @Scheduled 与 cron 不解析属性

转载 作者:行者123 更新时间:2023-12-02 03:14:59 25 4
gpt4 key购买 nike

我正在使用 spring 框架 v4.1.7,并且在安排 cron 任务时遇到问题,我想在属性文件中定义 cron 参数。

我的java代码:

@Scheduled(cron = "${invoice.export.cron}")
private void scheduledExport() {
// ... the code to execute ...
}

在我的属性文件中,我有invoice.export.cron: 0 0 7 * * MON-FRI?
为了启用调度,我在主配置类上有@EnableScheduling

我尝试调试这个问题,发现 cron 表达式应该从属性占位符 here 解析。 。调用 resolveStringValue 后,我会看到 this位置到 AbstractBeanFactory 中。据我所知,问题就在这里。 this.embeddedValueResolvers 列表为空...因此它无法解析我传递给 @Scheduled(cron) 的属性。

有人知道我是否做错了什么或错过了什么?

提前致谢! :)

最佳答案

您是否注册了PropertySourcesPlaceholderConfigurer

Specialization of PlaceholderConfigurerSupport that resolves ${...} placeholders within bean definition property values and @Value annotations against the current Spring Environment and its set of PropertySources.

我不确定它是否也适用于@Scheduled,但值得一试

@Configuration
@PropertySource("classpath:whatever.properties")
public class PropertiesWithJavaConfig {

@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}

关于spring @Scheduled 与 cron 不解析属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32995387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com