我正在学习春天。 我尝试使用ResourceBundleMessageSource,这是我尝试的例子。
主要应用程序
'transform': 'translate(' + animationProperties.amount + !important')'
的beans.xml
public class MainApp {
public static void main(String arg[]){
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
String text = context.getMessage("s.wish",
new Object[] {"saro", "stanes" },
Locale.ENGLISH);
System.out.println("English... " + text);
String text2 = context.getMessage("s.wish",
new Object[] {"saro", "stanes" },
Locale.FRANCE);
System.out.println("French... " + text2);
}
}
messages_en_US.properties
<!-- resource bundle -->
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource ">
<property name="basename" value="resources/locale/messages"/>
</bean>
messages_fr_FR.properties
s.wish=good morning, name : {0}, school : {1}
输出:
s.wish=bonjour, name : {0}, school : {1}
从我理解的文档中,ReloadableResourceBundleMessageSource比ResourceBundleMessageSource更先进。
1)它不仅限于读取.properties文件,还可以读取xml属性文件。
2)它不仅限于从类路径中读取文件,而是从任何位置读取文件。
“cacheSeconds”的概念是什么?
English... good morning, name : saro, school : stanes
French... bonjour, name : saro, school : stanes
有人可以简要介绍一下,或者帮助我做一个更好理解的例子。
答案 0 :(得分:2)
设置缓存已加载属性文件的秒数。
请注意,根据您的ClassLoader,过期可能无法可靠地工作,因为ClassLoader可能会保留捆绑文件的缓存版本。
在这种情况下,优先使用ResourceBundleMessageSource上的ReloadableResourceBundleMessageSource,并结合非类路径位置。