假設(shè)我有以下兩個(gè)配置文件:文件一:key1 = ${common.key1}key2 = ${common.key2}文件2:common.key1 = value1common.key2 = value2我有以下代碼:import org.apache.commons.configuration.PropertiesConfiguration;...PropertiesConfiguration newConfig = new PropertiesConfiguration();File configFile1 = new File("...paht to file 1");File configFile2 = new File("...path to file 2");newConfig.setDelimiterParsingDisabled(true);newConfig.load(configFile2);newConfig.load(configFile1);Iterator<String> props = newConfig.getKeys();while (props.hasNext()) { String propName = props.next(); String propValue = newConfig.getProperty(propName).toString(); System.out.println(propName + " = " + propValue);}我有以下輸出:common.key1 = value1common.key2 = value2key1 = ${common.key1}key2 = ${common.key2}為什么占位符沒(méi)有解析?
2 回答

喵喔喔
TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
以下是用戶應(yīng)注意的與變量插值相關(guān)的更多信息:
...
變量插值由所有屬性訪問(wèn)方法完成。一個(gè)例外是返回原始屬性值的通用方法。
getProperty()
這正是您在代碼中使用的。
API 文檔getProperty()
也提到了這一點(diǎn):
從配置中獲取屬性。...在此級(jí)別上尚未執(zhí)行變量替換。
使用其他可用的方法來(lái)PropertiesConfiguration
獲取實(shí)際的插值。例如,調(diào)用getProperties()
將其PropertiesConfiguration
轉(zhuǎn)換為java.util.Properties
對(duì)象并對(duì)其進(jìn)行迭代。

12345678_0001
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
也可以通過(guò)占位符替換以通用方式使用它,如下所示:
config.get(Object.class, propName);
getProperty
與方法不同,get
帶參數(shù)的方法Object.class
將返回原始類的值,并插入變量。
添加回答
舉報(bào)
0/150
提交
取消