在Spring中如何使用Java常量作为@Scheduler表达式注释的一部分?

Vis*_*kia 3 java spring annotations constants

我正在使用Spring Scheduler,如下所示。

 @Scheduled(fixedDelay = ((10 * 60 * 1000) / 2))
    public void runDynamic()
    {
      //doing my stuff
    }
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个这样的常数

public static final Integer VARIANCE_TIME_IN_MIN = 10;
Run Code Online (Sandbox Code Playgroud)

我想将此常量用作表达式的一部分,如下所示:

@Scheduled(fixedDelay = ((MyConstants.VARIANCE_TIME_IN_MIN * 60 * 1000) / 2))
public void runDynamic()
{
//doing my stuff
}
Run Code Online (Sandbox Code Playgroud)

但这给了我编译时错误。有任何想法吗?提前致谢..!

Nim*_*sky 5

Java批注采用编译时间常数,它们被定义为最终原语或字符串。

所以将您的定义更改为

   public static final int VARIANCE_TIME = 10;
   public static final long FIXED_DELAY = ((VARIANCE_TIME * 60 * 1000) / 2)

   @Scheduled(fixedDelay = FIXED_DELAY)
   public void runDynamic()      
Run Code Online (Sandbox Code Playgroud)