我有一個包含一組任意屬性的Spring Boot屬性源文件。我想要獲得所有這些屬性並將它們添加到環境中。如何直接將Spring Boot屬性源的屬性添加到環境中
我試着將環境注入到類中,並且我可以使用它來獲取已知的屬性。但我不知道如何從那裏獲得全部屬性。'
如果當然我可以使用傳統的Properties.load(),但是有沒有Spring方法來做到這一點?
我有一個包含一組任意屬性的Spring Boot屬性源文件。我想要獲得所有這些屬性並將它們添加到環境中。如何直接將Spring Boot屬性源的屬性添加到環境中
我試着將環境注入到類中,並且我可以使用它來獲取已知的屬性。但我不知道如何從那裏獲得全部屬性。'
如果當然我可以使用傳統的Properties.load(),但是有沒有Spring方法來做到這一點?
你試過@PropertySource otation嗎?
我不會推薦使用PropertySource
,因爲您無法配置您添加的屬性的優先順序。你可能想要以某種方式覆蓋這些屬性,也許?或者您可能希望這些屬性優先於其他屬性。爲此,我建議您實施EnvironmentPostProcessor
。
在此university session at Devoxx中有一個示例,其中we showcase how to read a file from the home directory並將其添加到命令行屬性之後。你可以做幾乎相同的事情,按照你想要的方式排列。
如果您想嘗試一下,示例應用程序是available here。
如果你把你的屬性放到「application.properties」(或其他地方描述的here)中,這些屬性在Spring的環境中自動提供。
訪問屬性的一種方法就是將@Autowire
Environment
轉換爲您要訪問它的類。