idea类加载器的使用

类加载器的使用

在maven项目中

InputStream in =DBUtils.class.getClassLoader()
.getResourceAsStream("db.properties");

在此类加载器中加载的位置不是我的编写是原代码的位置而是编译后的classPath中的位置
在这里插入图片描述

在普通的web项目中

InputStream in=Thread.currentThread().getContextClassLoader().getResourceAsStream一定要记得close()

在之前写了一个数据库连接的工具类测试,用ClassLoader类的getResource(String name),getResourceAsStream(String name)等方法,使用相对于当前项目的classpath的相对路径来查找资源。

而在第一次写此代码是数据连接正常` //读取文件
InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(“config/db.properties”);

    Properties proper=new Properties();
    proper.load(in);
    String url=proper.getProperty("url");
    String name=proper.getProperty("name");
    String password=proper.getProperty("password");
    String driver=proper.getProperty("Driver");
    Class.forName(driver);
    Connection connect = DriverManager.getConnection(url, name, password);
    System.out.println(connect);
    return connect;

之后运行

在这里插入图片描述此时第一句为找到的db.properties的地址输入缓冲流,第二句为连接的的数据库信息。

在过段时间之后再去使用此代码时输出报错空指针异常信息,原因是没有在之前加上in.close()语句。

所以一定要记得加close()语句

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值