如何在Spring Boot中将配置属性注入到Spring Retry注释中?

Spring Boot" title="Spring Boot">Spring Boot应用程序中,我在yaml文件中定义了一些配置属性,如下所示。

my.app.maxAttempts = 10

my.app.backOffDelay = 500L

还有一个示例豆

@ConfigurationProperties(prefix = "my.app")

public class ConfigProperties {

private int maxAttempts;

private long backOffDelay;

public int getMaxAttempts() {

return maxAttempts;

}

public void setMaxAttempts(int maxAttempts) {

this.maxAttempts = maxAttempts;

}

public void setBackOffDelay(long backOffDelay) {

this.backOffDelay = backOffDelay;

}

public long getBackOffDelay() {

return backOffDelay;

}

如何注入Spring

Retry注释的值my.app.maxAttemptsmy.app.backOffdelay?在下面的示例中,我想用配置属性的相应引用替换10maxAttempts和500Lbackoff值。

@Retryable(maxAttempts=10, include=TimeoutException.class, backoff=@Backoff(value = 500L))

回答:

从spring-retry-1.2.0开始,我们可以在@Retryable批注中使用可配置的属性。

使用“ maxAttemptsExpression”,有关用法,请参见以下代码,

 @Retryable(maxAttemptsExpression = "#{${my.app.maxAttempts}}",

backoff = @Backoff(delayExpression = "#{${my.app. backOffDelay}}"))

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

以上是 如何在Spring Boot中将配置属性注入到Spring Retry注释中? 的全部内容, 来源链接: utcz.com/qa/421063.html

回到顶部