(工作小记)不同jar包下的同名同路径配置文件读取

问题场景:
Demo工程引入a.jar,b.jar两个jar包,a.jar和b.jar下都存在同一个db.properties配置文件,读取配置信息的时候是否存在冲突和覆盖的问题?

工作中几种常用的读取方式
方式一:

            Thread.currentThread().getContextClassLoader().getResourceAsStream("xxx.properties");

方式二:

            Thread.class.getResourceAsStream("xxx.properties")

方式三:

            Enumeration urls = Thread.currentThread().getContextClassLoader().getResources("xxx.properties");
            while(urls.hasMoreElements()) {
                InputStream inst = urls.nextElement().openStream();
            }

经验证:
方式一和方式二都只能读取到一个配置文件信息,优先级由-classpath 引入jar的顺序决定,靠前的jar的配置文件具有更高的优先级。
而方式三则能读取到不同jar下的所有同名配置文件。

转载请备注原文链接。

你可能感兴趣的:((工作小记)不同jar包下的同名同路径配置文件读取)