我在班上有这个,我从application.properties
A类
@Value("${maxAttempts}")
private String maxAttempt;
@Value("${delay}")
private String delay;
@Value("${multiplier}")
private String multiplier;
@Value("${max-delay}")
private String maxDelay;
我在这一行中使用它们
@Retryable(maxAttempts=maxAttempt, value=RuntimeException.class, backoff = @Backoff(delay =delay,multiplier = multiplier, maxDelay = maxDelay))
application.properties
maxAttempt=3
delay=3
max-delay=9
multiplier=2
但是我得属性值必须是常数
修改
@Value("${maxAttempts}")
private int maxAttempt;
@Value("${delay}")
private int delay;
@Value("${multiplier}")
private int multiplier;
@Value("${max-delay}")
private int maxDelay;
@Retryable(maxAttempts="${maxAttempts}", value=RuntimeException.class, backoff = @Backoff(delay ="${delay}",multiplier = "${multiplier}", maxDelay = "${max-delay}"))// @Retryable(maxAttempts = 3, value = RuntimeException.class, backoff = @Backoff(delay = 10000))
我得到找到java lang字符串但需要int
答案 0 :(得分:0)
从spring-retry-1.2.0开始,我们可以在@Retryable注释中使用可配置的属性。
使用“maxAttemptsExpression”,请参阅以下代码以了解用法,
@Retryable(maxAttemptsExpression =“#{$ {maxAttempts}}”,退避= @Backoff(delayExpression =“#{$ {delay}}”))
如果使用任何小于1.2.0的版本,它将无法工作。此外,您不需要任何可配置的属性类。