我的項目中引用同事的jar,這個jar中讀取了我項目中的properties,我的properties里的value是從pom中獲取的,這時問題出現(xiàn)了 jar只能讀取properties中pom還沒有注入時的value,也就是${value}形式。但我項目中自身的獲取properties的代碼可以成功獲取pom注入后... 我的項目中引用同事的jar,這個jar中讀取了我項目中的properties,我的properties里的value是從pom中獲取的,這時問題出現(xiàn)了 jar只能讀取properties中pom還沒有注入時的value,也就是${value}形式。但我項目中自身的獲取properties的代碼可以成功獲取pom注入后的value。這是什么問題?兩個現(xiàn)象的區(qū)別就是一個是從jar中獲取,一個是本地程序獲取。
1 回答

小怪獸愛吃肉
TA貢獻(xiàn)1852條經(jīng)驗 獲得超1個贊
猜了半天也沒搞懂,我想確認(rèn)一下
jar中的類無法讀取是讀不到值還是讀到一個注入前的值,例如'${value}'
題主是否在開發(fā)WEB項目?能否確定jar文件中的類與項目中讀取配置的類同由一個ClassLoader加載?
題主項目讀取properties的方式是基于文件系統(tǒng)(比如用File)還是resource流(例如Class.getResourceAsStream),我猜后者可能性較高(因為使用文件系統(tǒng)會在項目整體打包后造成麻煩),那么我問的第2條就比較重要了,可能會影響到一些問題。
讀取配置的時機(jī),按理說既然是配置文件了,應(yīng)當(dāng)在類加載時讀取,但如果題主有手動控制這一過程,也請說一聲
添加回答
舉報
0/150
提交
取消