Java 在不重新启动应用程序的情况下修改Spring消息文本?
我正在做一个SpringWeb应用程序。我使用Spring3.1和Eclipse。我通过Eclipse中的Jetty运行应用程序 我有许多JSP页面包含如下文本: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
<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
)的日志级别设置为调试,以查看内部发生了什么。