簡體   English   中英

彈簧啟動; 我們可以在 Java 枚舉中使用 @Value

[英]SpringBoot; Can we use @Value in Java Enums

是否可以在 Enum 類中使用 @Value("${myapp.token.key}") ?

在 Enum 類中使用 @Configuration 或 @ConfigurationProperties 是一種好習慣嗎?

——JK

不,這不對。 枚舉的目的是為我們提供范圍有限的映射數據(固定值集)。 如果我們要在 Java 枚舉中使用@Value ,它首先會帶走枚舉的目的。

@Configuration也是如此,當我們想在 Spring 的容器中注入實例時,我們會這樣做。 這對枚舉沒有任何意義。

如果您發布您嘗試這樣做的實際原因,我們可能會為您指出正確的方向/解決方案。

這是可能的,但這並不容易,而且絕對不是一個好主意。 更喜歡實現與Function<MyEnum, String>等效的接口的服務。

您可以創建一個具有靜態字段和默認值的類,如下所示

class EnumLikeClass {

  public static String key;

  @Value("${myapp.token.key:Default value}")
  public void setKey(String keyTemp) {
    EnumLikeClass.key = keyTemp;
  }

}

現在你可以打電話給

EnumLikeClass.key

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM