(工作小记)不同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<URL> urls = Thread.currentThread().getContextClassLoader().getResources("xxx.properties");
            while(urls.hasMoreElements()) {
                InputStream inst = urls.nextElement().openStream();
            }

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

转载请备注原文链接。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。