2017-08-30 123 views
0
恒定

我有这个在我的课,我从application.properties属性值必须在@Retryable

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郎字符串,但需要INT

回答

0

从春重试-1.2.0,我们可以在@Retryable注释使用配置属性凝望。

使用 “maxAttemptsExpression”,请参考下面的代码使用,

@Retryable(maxAttemptsExpression = “#{$ {maxAttempts}}”,退避= @Backoff(delayExpression =“#{$ {延迟}}“))

如果使用小于1.2.0的任何版本,它将不起作用。您不需要任何可配置的属性类。

+0

cannnot解决maxAttemptsExpression ... –

+0

您使用Spring的重试的版本? – VelNaga

+0

1.1.2.RELEASE .. –

相关问题