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

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