2015-10-20 55 views
0

我想在我的應用程序中使用Spring Boot配置,但是,有一件事我不喜歡它。我的應用程序處於早期開發階段,屬性鍵可能會更改。通常,我使用公共靜態String常量作爲屬性名稱,所以無論何時一個鍵發生更改,我只需要在一個地方更改它。有了這樣說,我就必須配置這樣我的應用程序:在Spring @Value註釋中省略美元佔位符

@Value("${" + AppConstants.SOME_STRING_PROPERTY + "}") 
private String someProperty; 

是否有任何「清潔」的方式來實現這一目標,可能不使用${}佔位所有的時間?

+0

理想值改變,而不是鍵。但沒關係,如果是這種情況。我不知道如何實現這一點,但我知道Intellij也可以重構這個,所以你只會在一個地方改變。 –

+0

正如我所說,關鍵的變化是在這個工作階段的設計變更的結果。另外,擁有一個具有屬性鍵的類可以充當開發人員文檔 - 與搜索所有@Value註釋事件相比,以這種方式查找所有配置選項更爲輕鬆。我還想避免用IDE手動重構,因此我首先使用Spring這樣的工具。 – nachteil

+1

除非您願意編寫自己的註釋和後處理器,否則不能省略'$ {}'。 –

回答

1

看看@ConfigurationProperties功能。您可以將整個配置文件導入到沒有任何美元符號的Java POJO中。您還可以使用驗證註釋驗證配置,並且您可以獲得類型安全性。