2012-07-25 57 views
2

我需要加載許多屬性文件,這些文件在資源文件夾中。Spring MVC的2.5:如何加載屬性文件

我有以下內容的資源稱爲abc_en.properties:
a = x
b = y
c = z

,我需要使用屬性唱java.util.Properties在Java方法:

java.util.Properties reportProperties = new java.util.Properties(); 
    ... 
    String a = reportProperties.getProperty("a"); 

如何我可以這樣做嗎?

謝謝

+0

你試過什麼? – 2012-07-25 09:54:46

+0

我正在尋找最佳解決方案。我有一個名爲xyz_en.properties的資源,我需要使用這個中定義的屬性,使用java.util.Properties – 2012-07-25 10:06:21

回答

4

你需要在上下文文件來定義propertyConfigurer豆:

<bean id="propertyConfigurer" 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
      <value>classpath:abc.properties</value> 
      <value>classpath:efg.properties</value> 
     </list> 
    </property> 
</bean> 

編輯:

爲了使用java.util.Properties您需要定義您的上下文文件中的PropertiesFactoryBean bean:

<bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
      <property name="location"> 
       <list> 
       <value>classpath:abc_en.properties</value> 
       <value>classpath:abc_fr.properties</value> 
       </list> 
      </property> 
     </bean> 

然後在你的類,你需要定義一個java.util.Properties varible並加載性能豆進去:

public class MyClass { 

    @Autowired 
    private java.util.Properties properties; 


    public void myMethod() { 
     String a = properties.getProperty("a"); 
     String b = properties.getProperty("b"); 
     String c = properties.getProperty("c"); 
    } 
} 

還有其他的方法來屬性豆裝入你的類,但如果您使用@Autowired註釋,您需要將<context:annotation-config />元素放入您的上下文文件中。

+1

謝謝,但我如何使用我的java方法中的屬性? – 2012-07-25 10:21:02

+0

您可以一樣,如果你在你的屬性文件'my.application.variable = something',你可以定義一個Spring bean類的屬性分配給類中的一個變量: ' <屬性名= 「可變的」 值= 「$ {my.application.variable}」/> ' – rascio 2012-07-25 10:33:40

+0

那麼,有必要爲每個的.properties豆?每個屬性都有一個字段? – 2012-07-25 10:50:43

0

您需要在xml文件中定義消息源bean。

嘗試這種方式

<bean id="messageSource" name="applicationMessageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> 
    <property name="basenames"> 
     <list> 
      <value>resources.abc.abc</value> 
     </list> 
    </property> 
</bean> 
相關問題