【问题标题】:User @Value springboot annotation as enum value用户@Value springboot 注解作为枚举值
【发布时间】:2021-08-20 19:06:51
【问题描述】:
Given:
application.yml --> content

kafka:
  topicA: topic-a
  topicB: topic-b


public enum KafkaTopicBeanMapping {
    TOPICA(@Value("${kafka.topicA}", "ratelimiterABean"));
    TOPICB(@Value("${kafka.topicB}", "ratelimiterBBean"));

    private final String topicName;
    private final String ratelimiterBeanName;
}

但在上述情况下,我收到@Value("${kafka.topicA}") 不能在此处使用的错误。 我不想将 ratelimiterBeanName 作为 application.yml 的一部分。 有没有办法做到这一点?

【问题讨论】:

    标签: java spring-boot enums spring-annotations


    【解决方案1】:

    Java 枚举本质上是静态的,它们只能被初始化一次。 Spring 中的 @Value 使值本质上是动态的,而枚举无法做到。

    【讨论】:

      猜你喜欢
      • 2011-10-27
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-17
      • 1970-01-01
      相关资源
      最近更新 更多