当前位置: 首页 > 知识库问答 >
问题:

如何将Spring Boot中的配置属性注入Spring重试注释?

通宾白
2023-03-14
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;
  }

如何将My.app.MaxAttemptsMy.app.BackoffDelay的值注入Spring重试注释?在下面的示例中,我想用配置属性的相应引用替换maxAttempts的值10和backoff值的值500L

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

共有1个答案

阎承
2023-03-14

spring-retry-1.2.0开始,我们可以在@retryable注释中使用可配置属性。

使用“MaxAttemptsExpression”,请参考下面的代码了解用法,

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

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

 类似资料:
  • 问题内容: 我有一堆Spring bean,它们是通过注释从类路径中拾取的,例如 我想将app.properites的属性之一注入到上面显示的bean中。我不能简单地做这样的事情 因为PersonDaoImpl在Spring XML文件中没有功能(它是通过注释从类路径中拾取的)。我有以下内容: 但是我不清楚我如何从中访问我感兴趣的财产? 问题答案: 你可以在Spring 3中使用EL支持进行此操作

  • 问题内容: 我有一堆Spring bean,它们是通过注释从类路径中拾取的,例如 在Spring XML文件中,定义了一个PropertyPlaceholderConfigurer: 我想将app.properites的属性之一注入到上面显示的bean中。我不能简单地做这样的事情 因为PersonDaoImpl在Spring XML文件中没有功能(它是通过注释从类路径中拾取的)。我有以下内容: 但

  • 我有一个Spring配置类,我正在使用它从属性文件中读取并创建bean。 在xml文件中 我能够设置和属性,但无法将属性设置为,因为我们需要注入及其。请让我知道如何在方法中注入bean。

  • 我试图向自定义注释中注入一个值,但Spring似乎没有进行评估。

  • 问题内容: 有点卡在这里。我有一个带有3个配置文件的pom。Theese配置文件具有不同的版本名称。我要在构建特定配置文件时将该版本名称注入属性文件。 我的个人资料: 和filter.properties看起来像这样: 怎么做?我通过命令构建项目: 问题答案: 您需要做的是在POM文件的部分中添加一个新部分。 像这样: 这将在指定文件的指定文件夹()内部查找,并在遇到定义的变量时更改文件。 因此,

  • 在我的Spring Boot Application中,我用一个调用存储过程的方法实现了以下类。 由于调用存储过程需要数据库连接,所以我需要从应用程序加载这些相应的属性值。特性: 基于以下关于类似问题的文章,Spring boot—应用程序中的自定义变量。属性,并在您自己的类和Spring Boot@ConfigurationProperties示例中使用Spring Boot配置属性,我为我的类