java - 如何在运行时在 spring 中重新加载/刷新属性而不重新启动 jvm?

标签 java spring refresh reload applicationcontext

如何在运行时在 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/

相关文章:

java - JAX-WS + SOAP : How to parse HTTP Client Error

java - 响应式(Reactive) Mono API 多参数请求处理程序

java - Hystrix只在第一次错误发生时执行fallbackMethod

java - 如何在运行时基于没有 XML 的 Spring 属性注入(inject)不同的服务

kendo-ui - Kendo UI 数据源 read() 方法不执行

java - 如何使用 Swing 计时器

java - catch 和 finally 中 return 语句的行为

java - 在 GWT 中嵌入 javascript

eclipse - 如何停止Eclipse刷新目录?

javascript - 单击按钮重新加载 Angular 组件