maven工程中讀取resource目錄下配置文件


在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目錄找的,所以前面無需再加/。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM