重新加载属性文件而不重启服务器

时间:2014-04-11 15:08:36

标签: spring

我有一个属性文件,用于从中读取消息。我在我的应用程序中使用spring和hibernate。我使用以下代码加载属性文件

<bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="classpath:messages" />
        <property name="defaultEncoding" value="UTF-8" />
        <property name="cacheSeconds" value="1" />
    </bean>

我已将cacheSeconds指定为1秒,因此每当我更改文件时,缓存都会刷新,因此我在屏幕上获取更改的值,但是每个邮件访问缓存都会检查上次修改的时间戳,但这对生产环境来说并不是很好 那么有什么方法可以随时更改我的文件,这些更改应该自动反映在缓存中? 提前致谢

1 个答案:

答案 0 :(得分:2)

您可以使用JMX MBeans。它允许您在运行时更改属性。

   MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
   ObjectName name = new ObjectName("org.jmxapp.tnt.jmx:type=ApplicationMessageMBean");     
   mbs.registerMBean(msg, name); // Registering MBeans

http://docs.oracle.com/javase/tutorial/jmx/mbeans/index.html