码迷,mamicode.com
首页 > 其他好文 > 详细

maven工程中读取resource目录下配置文件

时间:2019-05-09 15:17:08      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:根目录   http   trace   pre   exce   成员变量   工程   res   alt   

在maven工程中,我们会将配置文件放到src/main/resources下面,例如

技术图片

我们需要确认resource 下的文件编译之后存放的位置。

技术图片

它编译的路径直接位于classes下面,这个路径其实就是classPath的路径,所以,在resources 根目录下的配置文件其实就是 classPath的路径。

// 1.   声明静态数据源成员变量
private static DataSource ds;

// 2. 创建连接池对象
static {
Properties pp = new Properties();
InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
try {
// 加载配置文件中的数据
pp.load(is);
// 创建连接池,使用配置文件中的参数
ds = DruidDataSourceFactory.createDataSource(pp);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

这样我们就可以直接拿到路径,调用 getResourceAsStream 方法 可以直接拿到目标文件的输入流。

几种读取配置文件的方式比较(代码在src/main/java目录下,资源文件在src/main/resources/目录下):

  1. InputStream is = this.getClass().getResourceAsStream(test.xml); //拿不到资源
  2. InputStream is = this.getClass().getResourceAsStream("/" +test.xml); // 拿到资源
  3. InputStream is = this.getClass().getClassLoader().getResourceAsStream(test.xml); //拿到资源
第一种方式会从当前类的目录下去找,这个文件如果不和该类在一个目录下,就找不到。
第二种方式会从编译后的整个classes目录下去找,maven也会把资源文件打包进classes文件夹,所以可以找到。
第三种方式中ClassLoader就是从整个classes目录找的,所以前面无需再加/。

 

maven工程中读取resource目录下配置文件

标签:根目录   http   trace   pre   exce   成员变量   工程   res   alt   

原文地址:https://www.cnblogs.com/debug-zheng/p/10838461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!