2

我正在做一个 Spring Web 应用程序。我使用 Spring 3.1 和 Eclipse。我通过 Eclipse 中的 Jetty 运行应用程序。

我有许多包含如下文本的 JSP 页面:

<spring:message code="label.subject"/>

这种类型的文本来自 Spring 上下文中定义的名为 messages_en.properties 的文件:

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

我需要不断修改messages_en.properties 中的文本。但是,如果不重新启动 Jetty,新文本不会出现在应用程序中,这对我来说非常不方便。

如何在不重新启动 Jetty 的情况下修改 Spring 消息文本?

谢谢你的帮助!

问候。

4

2 回答 2

4

答案在ResourceBundleMessageSource 的文档本身:使用ReloadableResourceBundleMessageSource

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
  <property name="basenames">
    <list>
      <value>messages</value>
    </list>
  </property>
  <property name="cacheSeconds" value="1"/>
</bean>
于 2013-04-06T15:58:22.847 回答
-1

您可以通过多种方式做到这一点。您可以使用文件监视器监视文件的更改并以编程方式重新加载资源。你可以看看这个:http ://docs.oracle.com/javase/tutorial/essential/io/notification.html

基本上,这个想法是在启动您的应用程序时在您的资源上注册一个文件监视器,然后当您更改它时,只需重新初始化您的资源。

于 2013-04-06T15:36:17.970 回答