idea web项目中java程序的配置文件放在resources目录下,但是读取不到配置文件

本文探讨了如何在Java中正确使用系统类加载器与自定义类加载器加载配置文件,通过实例揭示了两者在资源查找上的区别。作者发现系统类加载器在处理配置文件时存在问题,而自定义类加载器由于本地记录的优势得以成功加载。

每个人遇到的情况可能不一样,这个问题困扰我一天多,最后才发现是用错了加载器,可能是同样的加载器调用的方法不一样作用也不一样吧。

直接获取系统类加载器

当使用系统类加载器加载配置文件时报空指针异常,当时没考虑到加载器问题,一味的修改路径,绝对路径和相对路径都试过后发现都不行。

/**
*	调用系统类加载器
*/
ClassLoad.getSystemClass().getResourceAsStream()

使用自定义类获取类加载器

我翻阅了各个论坛都没有找到合适的解决方案,最后看到一个文章讨论加载器的问题。就抱着死马当活马医的心态试了试,没想到却成功了。

/**
*	CreateConn()     自定义类的静态方法,获取数据库连接
*	使用自定义类的加载器
*/
CreateConn().class.getClassLoad().getResourceAsStream()	

在这里插入图片描述
我猜测,系统类加载器可以加载自定义类,但不能加载配置文件(没有实践,实践后再来修改),应该是内部无法读取不配置文件,自定义类加载时在本地已经有记录了,所以当调用该类加载器时会相对于当前自定义类的地址进行查找要加载的资源。

这种方法只是解决了我当前的问题,有好多疑问,还没找到资料证实,如果有提议望各位在评论区回复!!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值