gpt4 book ai didi

java - 配置更改无需重新部署

转载 作者:行者123 更新时间:2023-12-02 10:15:06 24 4
gpt4 key购买 nike

我的 Web 应用程序与外部系统有多个集成,所有这些集成 Rest URL 都保存在 Web 应用程序的配置文件中。我的应用程序在启动时读取此配置文件,并在与外部系统建立连接时使用 URL 值。但经常会发生这样的情况:其中一个外部系统出现故障,我们必须使用备用 URL。在这种情况下,我们通常必须修改配置并重新部署 war 文件。有没有办法用新值修改配置文件而不需要重新部署 war 文件?

最佳答案

在我的项目中,我通常使用 Apache Commons Configuration 来管理配置文件(属性)。该库具有在文件更改时自动重新加载值的功能。

这是很多实现建议:

创建一个类“MyAppConfigProperties”来加载属性文件并读取您的配置 key :

public class MyAppConfig {

//Apache Commons library object
private PropertiesConfiguration configFile;

private void init() {
try {
//Load the file
configFile = new PropertiesConfiguration(
MyAppConfig.class.getClassLoader().getResource("configFile.properties"));

// Create refresh strategy with "FileChangedReloadingStrategy"
FileChangedReloadingStrategy fileChangedReloadingStrategy = new FileChangedReloadingStrategy();
fileChangedReloadingStrategy.setRefreshDelay(1000);
configFile.setReloadingStrategy(fileChangedReloadingStrategy);

} catch (ConfigurationException e) {
//Manage the exception
}
}

/**
* Constructor por defecto.
*/
public MyAppConfig() {
super();
init();
}

public String getKey(final String key) {

try {
if (configFile.containsKey(key)) {
return configFile.getString(key);
} else {
return null;
}

} catch (ConversionException e) {
//Manage Exception
}
}
}

现在您必须构造此类的实例(单例)并在需要重新设置配置 key 的所有位置使用它。

每次使用“getKey”方法时,您都将获得 key 的最后一个值,而无需部署和重新启动。

关于java - 配置更改无需重新部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54740336/

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