如何在@retryable 注解中传递变量值

How to pass variable value in @retryable annotation

我在调用 rest API 时使用 spring 重试机制。 使用下面的注释

 @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 100))

我有一个使用 @Configuration 的 java 文件,它从属性文件中获取属性。 除了传递静态值,有没有一种方法可以传递上述 java 文件中的值。

无法使用 @PropertySource("classpath:retryConfig.properties"),因为我从 java class 而不是属性文件中获取值。

尝试传递变量时出现以下错误

The value for annotation attribute Retryable.maxAttempts must be a constant expression

使用属性的...expression变体;这是其中一个测试用例的示例...

@Retryable(exceptionExpression = "#{@exceptionChecker.${retryMethod}(#root)}",
            maxAttemptsExpression = "#{@integerFiveBean}", backoff = @Backoff(delayExpression = "#{${one}}",
                    maxDelayExpression = "#{${five}}", multiplierExpression = "#{${onePointOne}}"))
public void service3() {

其中 onefive 以及 onePointOne 是属性。