首页 > 解决方案 > 我可以在另一个注释中使用属性中的 Spring @Value 变量吗?

问题描述

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

    @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'"

标签: javaspringspring-el

解决方案


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

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

推荐阅读