2012-12-13 58 views
0

我想知道是否可以讀取屬性文件中讀取的所有關鍵字,而不必訴諸讀取屬性文件本身。我有佔位符配置像這樣如何讀取使用<context:property-placeholder>配置的所有屬性鍵>

<context:property-placeholder 
    system-properties-mode="OVERRIDE" 
    ignore-resource-not-found="true" 
    location="classpath:/defaults.properties, file:${config.location:/etc/default/example.properties}" /> 

這幾乎排序了我需要的每一種情況。現在我想要一個配置概覽頁面,我可以驗證是否所有設置都已正確配置,而不需要手動將所有值注入@Controller,然後使用ModelAndView將它們傳遞給視圖。

任何想法如何解決這個問題,或者如果它甚至可能與財產佔位符?

回答

0

PropertyPlaceHolderConfigure不公開他的屬性,但您可以從BeanDefinition獲取位置並加載它們以獲得相同的結果。

BeanDefinition bd = configurableApplicationContext.getBeanFactory().getBeanDefinition("org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0"); 
    String[] locations = (String[]) bd.getPropertyValues().getPropertyValue("locations").getValue(); 
    Properties props = new Properties(); 
    for (String loc : locations) { 
     props.putAll(PropertiesLoaderUtils.loadProperties(configurableApplicationContext.getResource(loc))); 
    } 
相關問題