maven工程加载Druid连接池配置文件报空指针异常(java.lang.NullPointerException)
之前在学习数据库连接池的时候一直都是创建的JavaEE工程,然后导入的各种Jar包,连接池配置文件(durid.properties)也是一直放在src目录下面,然后静态加载的时候调用了类加载器,并未发生任何异常:
static {
// 加载配置文件中的数据
InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
Properties pp = new Properties();
try {
pp.load(is);
// 创建连接池,使用配置文件中的参数
ds = DruidDataSourceFactory.createDataSource(pp);
}catch (Exception e) {
e.printStackTrace();
}
}
后来学习使用maven技术创建工程时,通过同样的方法加载配置文件,然后就出问题了:
尝试方法1:
以为是文件目录引用的问题。因为maven工程配置文件都在src/main/resources目录下,将文件目录改为"/druid.properties";
尝试方法2:
百度之后发现有人说将类加载器删除便不会报错,即:
InputStream is = JDBCUtils.class.getResourceAsStream("/druid.properties");
Properties pp = new Properties();
发现问题解决了,至于原理,还在探究中。