gpt4 book ai didi

java - 在@Scheduled中分配字符串(cron ="Some String")

转载 作者:太空宇宙 更新时间:2023-11-04 13:00:56 25 4
gpt4 key购买 nike

我们有一个属性文件,其中我们提到要从 JSON/Zookeeper 获取属性。

示例:

AppName : SampleApp

在 SampleApp.properties 中我们将指定

configmode=json
jsonfile=/config.json

有很多如何使用属性文件在 @Scheduled 注释中分配属性的示例。

但在这种情况下,

我们必须使用一些Java类来读取属性(假设名称是Config)String cronExp=Config.get("CRONEXPRESSION") ;并将该 cron 放入 @Scheduled(cron = cronExp) ..这可能吗?

请注意,我们无法将 CRONEXPRESSION 属性直接移动到属性文件。在属性文件中,我们提到了 json。在代码中,我们读取该 json 并从那里选择属性。

最佳答案

简短回答:

遗憾的是,你不能这样做。

在 Java 中,注释属性在编译时解析。这意味着您只能提供立即值或常量。

用例特定答案:

Spring 让你使用SpEL在许多地方。在这种情况下,注释属性的值仍然在编译时解析,但该值由 Spring 在运行时评估。 @RC 提供了 good link to a discussion of the details .

答案稍长:

可以modify annotations at runtime by using reflection ,但这是一条棘手的路径,处理注释的代码需要处理注释在运行时更改的情况(这种情况很少见)。

关于java - 在@Scheduled中分配字符串(cron ="Some String"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34946693/

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