成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Maven如何讀取配置文件路徑

小編這次要給大家分享的是Maven如何讀取配置文件路徑,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

鶴崗網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來(lái)到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

在使用 XML 的配置方式來(lái)構(gòu)建 Mybatis 的核心類 SqlSessionFactory 時(shí),遇到了配置文件路徑總是寫不對(duì)的問(wèn)題。事后看其實(shí)就是沒有好好看文檔,一直在盲人摸象。

下面時(shí)讀取 XML 配置文件的代碼:

var inputSteam = Resources.getResourceAsStream("config/mybatis.xml");
var sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputSteam);

一開始我是將配置文件放在 src/main/java/com/imxfly/config/mybatis.xml 中,然后讀取路徑寫成:com/imxfly/config/mybatis.xml ,但是提示 java.io.IOException: Could not find resource com/imxfly/config/mybatis.xml。

所以關(guān)鍵是這里的配置文件路徑如何填寫,我們知道讀取的路徑并不是按照當(dāng)前開發(fā)時(shí)候的目錄結(jié)構(gòu)來(lái)的,而是編譯后在項(xiàng)目 target 目錄下以 classes 目錄為 classpath(即類的根目錄)去讀取的。

假設(shè)我們把配置文件放在 src/main/java/com/imxfly/config 目錄下,那么使用 maven compile 編譯后去查看 target 目錄你會(huì)發(fā)現(xiàn)找不到這個(gè)配置文件,這是因?yàn)?Maven 編譯的時(shí)候默認(rèn)只讀取 src/main/java 目錄下的 .java 文件然后編譯成 .class 文件,所以你在 target 目錄下是找不到我們的配置文件的,怎么解決呢?

推薦的做法是把這些 XML 配置文件放在 src/main/resources 目錄下。

在官方文檔(點(diǎn)擊查看)中清楚的描述了這一行為,其中有一句話:

Within artifact producing source directories (ie. main and test), there is one directory for the language java (under which the normal package hierarchy exists), and one for resources (the structure which is copied to the target classpath given the default resource definition).

對(duì)于 resources 目錄,其目錄結(jié)構(gòu)會(huì)完整的直接拷貝到 target classpath 中,假如我們有如下 src 的目錄結(jié)構(gòu):

.
├── main
│  ├── java
│  │  └── com
│  │    └── imxfly
│  │      └── App.java
│  └── resources
│    └── config
│      └── mybatis.xml
└── test
  └── java
    └── com
      └── imxfly
        └── AppTest.java

那么編譯完后的 target 目錄結(jié)構(gòu)就是:

.
├── classes
  ├── com
  │  └── imxfly
  │    └── App.class
  └── config
    └── mybatis.xml

所以我們?cè)诖a中讀取配置文件的路徑就是:

var inputSteam = Resources.getResourceAsStream("config/mybatis.xml");

因?yàn)槟J(rèn)情況下,Maven 會(huì)在 src/main/resources 去尋找項(xiàng)目的資源文件。

但是如果我們的項(xiàng)目結(jié)構(gòu)不好修改,配置文件就在 src/main/java/com/imxfly/config/mybatis.xml 怎么辦?

此時(shí)我們就需要在 Maven 配置文件 pom.xml 中去告訴 Maven 我們的資源文件放在了哪里:

<project>
 ...
 <build>
  ...
  <resources>
   <resource>
    <directory>src/main/java/com/imxfly/config</directory>
   </resource>
   <resource>
    <directory>src/main/java/com/imxfly/config2</directory>
   </resource>
   <resource>
    <directory>src/main/java/com/imxfly/config3</directory>
   </resource>
  </resources>
  ...
 </build>
 ...
</project>

編譯時(shí) Maven 就會(huì)把這些目錄下的文件結(jié)構(gòu)完整的拷貝到 target 目錄下(就像上面完整拷貝 resources 目錄一樣),所以此時(shí)我們的讀取路徑為:

var inputSteam = Resources.getResourceAsStream("mybatis.xml");

看完這篇關(guān)于Maven如何讀取配置文件路徑的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。

新聞名稱:Maven如何讀取配置文件路徑
文章位置:http://jinyejixie.com/article32/pocgsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、定制網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
时尚| 桑日县| 古蔺县| 武平县| 齐河县| 太康县| 弋阳县| 武平县| 枣强县| 若羌县| 习水县| 鄂尔多斯市| 泰顺县| 高台县| 禹城市| 墨玉县| 资兴市| 五家渠市| 邛崃市| 喀喇沁旗| 塔城市| 卓资县| 太仆寺旗| 大邑县| 张北县| 沂水县| 蒙自县| 萨嘎县| 德江县| 会理县| 名山县| 黄平县| 平江县| 宣城市| 九江县| 巴林左旗| 龙江县| 华亭县| 内江市| 弋阳县| 九龙县|