我需要加载许多属性文件,这些文件位于资源文件夹中。
我有一个名为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");
我该怎么做?
由于
答案 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>