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

我可以在另一个注释中使用属性中的Spring@Value变量吗?

庄宇
2023-03-14

我当前有一个来自属性文件的变量,声明为:

    @Value("${retryLimit}")
    private int retryLimit;

在本例中,我希望在注释中使用,而不是硬编码常量“3”:

    @Retryable(maxAttempts = 3, backoff = @Backoff(delay = 2000))

这有可能吗?

我试过:

    @Retryable(maxAttempts = @Value("${retryLimit}"), backoff = @Backoff(delay = 2000))

但是我得到以下编译错误:

"Incompatible types. Found: 'org.springframework.beans.factory.annotation.Value', required: 'int'"

共有1个答案

华阳秋
2023-03-14

无需在另一个注释标记内使用@value。只需使用out@value。它会起作用的。

@Retryable(maxAttempts = "${retryLimit}", backoff = @Backoff(delay = 2000))
 类似资料:
  • 项目的属性文件 项目的配置类 然而,我正在尝试使用条件配置创建一个SpringBoot starter项目,并希望将属性名称标准化为一些有用的东西,如“com.mycompany.propertygroup.propertyName”,但是为了简化转换并鼓励采用,我还希望在一段时间内支持旧的属性名称,因此我想知道是否有某种方法允许多个属性名称设置同一个字段?例如: 虽然提供的SpEL表达式答案在两

  • 问题内容: 看看我的“ file.properties”: 为什么当我得到“ key2”的值时,我的结果是“ $ {key1} Martin!”。不像“我叫马丁!” => 我使用Java 6编程=>我使用java.util.Properties 问题答案: 您可能需要查看Apache配置, http://commons.apache.org/configuration/ 它支持的许多功能包括变量插

  • 运行maven build时出现错误(无法加载依赖项)。 我相信发布此工件的开发人员应该设置变量,但没有。我认为这是一个错误,但我正在尝试通过设置变量来解决它。 我所依赖的JAR的POM<code>my.group:libme1:1.2.3</code>如下所示(突出显示问题的片段): 我试图通过在命令行中添加来定义它,但没有成功。例如 应该基于Baeldung的文章,但不是。 我还跑了: 我看到

  • 问题内容: 尝试在Spring 3.0.5.RELEASE中自动将属性连接到Bean ,我正在使用: config.properties: main-components.xml: MyClass: 结果,username被设置为字面值 ,因此表达式不会被解析。我对该类的其他自动关联依赖关系已设置,并且Spring不会引发任何异常。我也尝试添加,但没有帮助。 如果我将属性解析为单独的bean,然后

  • 问题内容: 我正在使用spring的PreAuthorize注释,如下所示: 但是,我已经在另一个类上将“角色”定义为静态字符串。如果我尝试使用此值: 我收到一个错误: 有没有办法使用PreAuthorize批注访问此类静态变量? 问题答案: 尝试以下使用Spring Expression Language评估类型的方法: 确保指定完全限定的类名。 文献资料

  • 我们一直在使用Spring@Value注释来注入属性值。我们有一个约定来命名属性名称,以匹配它们注入的java字段。这带来了不必要的工作,即每个ConfigBean的java字段都需要用@Value注释。 我正在寻找一种方法,用新的注释注释java类(比如说ConfigBean),让一些后处理器读取这些bean的属性名称,并自动注入属性值。 我正在寻找一些关于如何在没有@Value注释的情况下实现