用户@Value springboot注释作为enum值


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中的@Value使值在本质上是动态的,这是枚举所不能做到的。

相关内容

  • 没有找到相关文章

最新更新