如何在运行时在 spring 中重新加载/刷新属性而不重新启动 jvm?
我正在寻找一些优雅的东西,它应该适用于产品。因此,我猜 JRebel 已经不在考虑之列了。
目前,我的属性位于 MYProject.properties
oms.url=abbc.com
checkin.enabled=true
并且我的 java 文件会自动连接以从 applicationContext 提供的不同属性文件中搜索和使用这些属性:
<bean id="applicationProperties" class="myproject.config.CustomPropertyPlaceHolder">
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath:MyProject.properties</value>
<value>file:${CATALINA_BASE}/lib/MyProject.properties</value>
<!--<value>file:///appl/conf/outlet.properties</value>-->
<value>classpath:db.password</value>
<value>file:${CATALINA_BASE}/lib/db.password</value>
<!-- <ref bean="applPropertiesFromDb" /> -->
</list>
</property>
</bean>
Java 文件为:
@Value("${checkin.enabled}")
private String checkinEnabled;
最佳答案
使用ReloadableResourceBundleMessageSource
。
但这不会被刷新。
private String checkinEnabled;
您必须重新加载 checkinEnabled
变量。
关于java - 如何在运行时在 spring 中重新加载/刷新属性而不重新启动 jvm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18441142/