如何在@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() {
其中 one
和 five
以及 onePointOne
是属性。
我在调用 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() {
其中 one
和 five
以及 onePointOne
是属性。