Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不重新启动应用程序的情况下修改Spring消息文本?_Java_Eclipse_Spring_Messages - Fatal编程技术网

Java 在不重新启动应用程序的情况下修改Spring消息文本?

Java 在不重新启动应用程序的情况下修改Spring消息文本?,java,eclipse,spring,messages,Java,Eclipse,Spring,Messages,我正在做一个SpringWeb应用程序。我使用Spring3.1和Eclipse。我通过Eclipse中的Jetty运行应用程序 我有许多JSP页面包含如下文本: <spring:message code="label.subject"/> 此类文本来自Spring上下文中定义的名为messages_en.properties的文件: <bean id="messageSource" class="org.springframework.context.support.R

我正在做一个SpringWeb应用程序。我使用Spring3.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消息文本

谢谢你的帮助


问候。

你可以用很多方法来做。您可以使用文件监视器监视文件的更改,并以编程方式重新加载资源。你可以看看这个:

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

答案是:使用
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>

信息

这正是我想要的,是在Spring中构建的东西。谢谢我在Eclipse(juno)+Jetty8.1.2+Java7中使用了您的配置,它似乎不起作用。你知道为什么吗?让我猜猜。。。您正在编辑src/下的messages.properties,而不是target/下的messages.properties?我刚刚尝试复制您的设置,但犯了这个错误。此外,在处理此类问题(“为什么它不工作?!”)时,将涉及的Spring包(在本例中:
org.springframework.context.support
)的日志级别设置为调试,以查看内部发生了什么。