[英]spring java configuration environment variables
我正在使用Spring,並且正在從xml配置切換到Java配置。 實際上,我面臨環境變量的問題,因為我不了解如何以哪種方式檢索環境變量的值。
使用xml配置,我有以下內容
<bean id="myAppProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="file:${MY_ENV_VAR}/applicationConfiguration/external.properties"/>
<property name="fileEncoding" value="UTF-8"/>
</bean>
我不知道可以用哪種方式將先前的xml代碼切換到相同的Java配置。 我已經試過了
@Bean
public PropertiesFactoryBean cvlExternalProperties() {
PropertiesFactoryBean res = new PropertiesFactoryBean();
res.setFileEncoding("UTF-8");
res.setLocation(new FileSystemResource("file:${MY_ENV_VAR}/applicationConfiguration/external.properties"));
return res;
}
但是沒有成功。 我已經嘗試了環境類,但有任何改進。
你能幫助我嗎?
您可以使用@Value
注釋或@ConfigProperties
-Classes注入它們
試試這個:
@Bean
public PropertiesFactoryBean cvlExternalProperties(@Value("${MY_ENV_VAR}") String envVar) {
PropertiesFactoryBean res = new PropertiesFactoryBean();
res.setFileEncoding("UTF-8");
res.setLocation(new FileSystemResource("file:" + envVar + "/applicationConfiguration/external.propert ies"));
return res;
}
您可以在此處找到更多內容: http : //docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config
我找到了一種解決方案,但我正在嘗試最好的解決方案。
工作解決方案是
@Autowired private Environment env;
env.resolvePlaceholders( “$ {} MY_ENV_VAR”)
但是我正在尋找一種解決方案,該解決方案允許我聲明要從哪個域檢索變量。 例如系統變量,環境變量或外部屬性。
你能幫助我嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.