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