【发布时间】:2014-11-10 03:54:32
【问题描述】:
我正在尝试将属性文件中的动态值加载到 Bean 类(Spring MVC 项目)中。
我曾使用以下标签来加载值。
<context:property-placeholder
location="file:/home/java/examresults/departments.properties"
ignore-unresolvable="true" order="2"/>`
但在启动应用程序后更改属性文件中的值,它不会反映在表单上。
我正在使用以下声明将这些值注入到一个类中。
<bean id="beanmessage" class="examresults.bean.MessageClass" scope="prototype">
<property name="imagelocation" value="/home/java/examresults/"/>
<property name="boards" value="${boardvalue}"/>
<property name="departments" value="${deptvalue}"/>
</bean>
因此,我无法充分利用 Spring MVC 应用程序中的属性文件。
【问题讨论】:
-
Spring 不支持动态重新加载这样的属性。您可以重新加载应用程序上下文,但这可能是矫枉过正。有一些方法可以处理资源的热重载,例如 jrebel,甚至 jmx/JNDI。
-
您应该不希望在应用程序启动后更改属性文件。如果值是动态的,请将它们放入数据库或普通文件中,但不要向 Spring 询问。
-
为什么我要为更改的值创建另一个表?如果我将值放在外部文件上,那么应该相应地检索它。但是我仍然需要重新启动应用程序服务器。谢谢。
标签: spring spring-mvc properties-file