Spring MVC 2.5:如何加载属性文件

时间:2012-07-25 09:49:56

标签: java spring-mvc

我需要加载许多属性文件,这些文件位于资源文件夹中。

我有一个名为abc_en.properties的资源,其内容如下:
      a = x
b = y
c = z

我需要在Java方法中使用属性sing java.util.Properties:

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

我该怎么做?

由于

2 个答案:

答案 0 :(得分:4)

您需要在上下文文件中定义propertyConfigurer bean:

<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变量并将属性bean加载到其中:

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");
     }
}

还有其他方法可以将属性bean加载到您的类中,但是如果使用@Autowired注释,则需要将<context:annotation-config />元素放在上下文文件中。

答案 1 :(得分:0)

您需要在xml文件中定义messagesource bean。

试试这种方式

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