問(wèn)題場(chǎng)景:
Demo工程引入a.jar尺栖,b.jar兩個(gè)jar包,a.jar和b.jar下都存在同一個(gè)db.properties配置文件烦租,讀取配置信息的時(shí)候是否存在沖突和覆蓋的問(wèn)題延赌?
工作中幾種常用的讀取方式
方式一:
Thread.currentThread().getContextClassLoader().getResourceAsStream("xxx.properties");
方式二:
Thread.class.getResourceAsStream("xxx.properties")
方式三:
Enumeration<URL> urls = Thread.currentThread().getContextClassLoader().getResources("xxx.properties");
while(urls.hasMoreElements()) {
InputStream inst = urls.nextElement().openStream();
}
經(jīng)驗(yàn)證:
方式一和方式二都只能讀取到一個(gè)配置文件信息,優(yōu)先級(jí)由-classpath 引入jar的順序決定叉橱,靠前的jar的配置文件具有更高的優(yōu)先級(jí)挫以。
而方式三則能讀取到不同jar下的所有同名配置文件。
轉(zhuǎn)載請(qǐng)備注原文鏈接窃祝。