2

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

我有一个名为 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");

我怎样才能做到这一点?

谢谢

4

2 回答 2

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 />元素放入您的上下文文件中。

于 2012-07-25T09:58:56.687 回答
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>
于 2012-07-25T09:54:20.277 回答