我們正在使用彈簧啓動應用程序,其屬性從application.yml文件,而不是application.properties加載,位於的src /主/資源/它看起來象下面這樣:
配置:
主機:本地主機:8080
服務器:123使用的配置特性的兩個YAML文件
而且他們在一個.java文件被拉到這樣
@ConfigurationProperties(prefix="config")
public class ConnectionImpl implements Connection{
@Value("${config.host}")
private Stringhost;
}
我能夠檢索屬性這種方式。 但我們試圖將application.yml的配置屬性移動到位於不同位置的不同.yml文件。 (SRC /主/資源/ ENV-CONFIG)。
現在我無法以相同的方式檢索屬性,即使用@Value註釋。是否有任何其他註釋需要添加?
您是否需要同時或在不同的環境下加載兩個yaml屬性 - 例如。 dev/test/prod環境?另外,您是否需要配置屬性,或者您是否可以使用Properties源?例如。 @PropertySource(「classpath:$ {some.file.name} .yaml」) - 通過這種方式,您可以在java命令行啓動調用中使用OS env變量SOME_FILE_NAME或像-Dsome.file.name =這樣的參數。 – chaos
我們同時需要兩者。我們需要配置屬性。 – user2296988
在這種情況下,我會混合使用多個屬性文件+環境變量。例如,我會有「jms。 .yaml」和「db。 .yaml」,甚至是「utils。.yaml」。這些文件中的每一個都會有一個用@PropertySource註釋的pojo(「classpath:/ com/$ {my.path:default/path}/db。$ {env:local} .properties」) - 你可以用-Dmy .path = path/to/yaml/files和-Denv = dev在命令行中 - 所以如果你將yaml打包到你的jar中,它會在那裏找到道具,但是如果你需要把它改成文件系統上的yaml文件,你也可以在那裏覆蓋它。 –
chaos