下面的代碼的伎倆,我
private void initializeConfiguration() {
// FixedDelayPollingScheduler is initialized with default system
// settings
// Fixed delay in milliseconds between two reads of the configuration
// URLs
// archaius.fixedDelayPollingScheduler.delayMills = 60000
// Initial delay in milliseconds of reading from the configuration
// source
// archaius.fixedDelayPollingScheduler.initialDelayMills = 30000
AbstractPollingScheduler scheduler = new FixedDelayPollingScheduler();
// Configuration source that brings dynamic changes to the configuration
// via polling
PolledConfigurationSource source = new XMLPolledConfigurationSource();
// Configuration that polls a PolledConfigurationSource according to the
// schedule set by a scheduler
DynamicConfiguration configuration = new DynamicConfiguration(source, scheduler);
ConfigurationManager.install(configuration);
// Registering configuration with an MBean and will be accessible for
// read and update via JConsole
ConfigJMXManager.registerConfigMbean(configuration);
}
XMLPolledConfigurationSource源代碼
public class XMLPolledConfigurationSource implements PolledConfigurationSource {
@SuppressWarnings("static-access")
@Override
public PollResult poll(boolean inital, Object checkPoint) throws Exception {
PollResult pollResult = null;
Map<String, Object> map = new HashMap<>();
// Code to read content from the resource
return pollResult.createFull(map);
}
}
嗯,我怎麼能設置-Darchaius .configurationSource.additionalUrls到src/main/resource文件夾中的xml文件? – yousafsajjad
除此之外,有人能夠使用PolledConfigurationSource嗎? 正如指南中所建議的那樣,我將擴展PolledConfigurationSource類並使用StAX解析器從文件中讀取內容,將它們放入HashMap中並設置PollResult.createFull(map); – yousafsajjad
當您運行java應用程序並僅使用文件名時,將它作爲參數傳遞,它將在類路徑中解析它的路徑...如果它是自行執行的jar,您可以這樣做:java -jar myapp.jar -Darchaius ... = config.xml'。根據文檔 – Filip