2016-09-29 47 views
0

我遇到了一個問題,我無法從Java代碼訪問Spring屬性。來自文件的屬性在Spring中找不到

這裏是上下文:

<context:property-placeholder ignore-resource-not-found="false" 
    location="file:/${setup.properties.directory}/setup.properties"/> 

setup.properties文件看起來是這樣的:

paymentProvider.x.url=x 

的代碼是:

SpringContext.INSTANCE.getEnvironment() 
        .getProperty("paymentProvider.x.url"); 

有運行過程中沒有錯誤。但是,上面的代碼的結果給出了null

任何人都知道爲什麼?

+0

您使用的是哪個春季版本?您可以分享您的pom.xml文件嗎?如果屬性文件位於您的類路徑中,請點擊鏈接https://www.mkyong.com/spring/spring-propertysources-example/ – VelNaga

+0

@VelNaga,4.3.1.RELEASE。 – ArthurDn

+0

您是否使用@Value註解來獲取屬性?您是否也在類路徑或靜態路徑中擁有此屬性? – VelNaga

回答

0

修改context:property-placeholder配置,如:當你要對類級使用訪問此屬性值的一個註解像

<context:property-placeholder location="classpath:setup.properties" /> 

@PropertySource(value = { "classpath:setup.properties" }) 

,並讀取屬性值,自動裝配Environment內部的類如:

@Autowired 
private Environment environment; 

最後,你可以訪問,如:

environment.getRequiredProperty("paymentProvider.x.url"); 
0

對我來說只有

@Configuration 
@PropertySource("file:/${setup.properties.directory}/setup.properties") 
public class SpringContext { 
public static final ApplicationContext PROPERTIES_INSTANCE = new AnnotationConfigApplicationContext 
     (SpringContext.class); 
} 

作品。

相關問題