gpt4 book ai didi

java - 无法使用 PropertyPlaceholderConfigurer 更新配置文件

转载 作者:行者123 更新时间:2023-12-02 04:25:42 24 4
gpt4 key购买 nike

是否可以使用 PropertyPlaceholderConfigurer 更新属性

applicationContext.html

<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="false"></property>
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="locations" value="classpath:config.properties" />
</bean>
<bean id="appConfig" class="com.abc.Configuration">
<property name="myProperty" value="${config.request.myProperty}" />
</bean>

配置.java

@Configuration
@Component
public class ServerConfig {
private int myProperty;
public int getMyProperty(){return myProperty;}
public int setMyProperty(int value){this.myProperty = value }
}

配置.属性

myProperty=123456

我可以使用 getMyproperty() 获取“myProperty”值。但我无法使用 setMyProperty() 更新属性 - 配置文件未更新,因此如果应用程序重新启动,新值将丢失。

任何帮助将不胜感激。

最佳答案

像这样更新属性是行不通的。您需要直接访问配置文件并将更改写入其中。问题是 PropertyPlaceholderConfigurer 可能从不同类型的源读取(在您的情况下是类路径资源)。其中一些可能是只读的。

另请记住,如果您进行更改,事件将不会被自动拾取。您必须刷新 spring 上下文。或者您可以使用一些专用的配置库(例如 cfg4j )

关于java - 无法使用 PropertyPlaceholderConfigurer 更新配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32221496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com