最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Maven 的配置文件路徑讀取方法

 更新時(shí)間:2020年06月09日 11:27:19   作者:imxfly  
這篇文章主要介紹了Maven 的配置文件路徑讀取方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

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

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

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

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

所以關(guān)鍵是這里的配置文件路徑如何填寫(xiě),我們知道讀取的路徑并不是按照當(dāng)前開(kāi)發(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");

參考資料:

https://maven.apache.org/plugins/maven-resources-plugin/examples/resource-directory.html
https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

到此這篇關(guān)于Maven 的配置文件路徑讀取方法的文章就介紹到這了,更多相關(guān)Maven 配置文件路徑讀取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot3.3.X整合Mybatis-Plus的實(shí)現(xiàn)示例

    SpringBoot3.3.X整合Mybatis-Plus的實(shí)現(xiàn)示例

    本文介紹了在Spring Boot 3.3.2中整合MyBatis-Plus 3.5.7,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • SpringBoot數(shù)據(jù)層測(cè)試事務(wù)回滾的實(shí)現(xiàn)流程

    SpringBoot數(shù)據(jù)層測(cè)試事務(wù)回滾的實(shí)現(xiàn)流程

    這篇文章主要介紹了SpringBoot數(shù)據(jù)層測(cè)試事務(wù)回滾的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-10-10
  • Jar包如何導(dǎo)入本地maven倉(cāng)庫(kù)

    Jar包如何導(dǎo)入本地maven倉(cāng)庫(kù)

    將本地jar包導(dǎo)入本地maven倉(cāng)庫(kù),可以通過(guò)maven命令-Dfile、-DgroupId、-DartifactId、-Dversion、-Dpackaging指定jar包的詳細(xì)信息,然后執(zhí)行命令即可
    2024-11-11
  • 如何使用BufferedReader循環(huán)讀文件

    如何使用BufferedReader循環(huán)讀文件

    這篇文章主要介紹了如何使用BufferedReader循環(huán)讀文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • IDEA 2021版新建Maven、TomCat工程的詳細(xì)教程

    IDEA 2021版新建Maven、TomCat工程的詳細(xì)教程

    這篇文章主要介紹了IDEA 2021版新建Maven、TomCat工程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • SpringBoot整合Redis使用RedisTemplate和StringRedisTemplate

    SpringBoot整合Redis使用RedisTemplate和StringRedisTemplate

    Spring?Boot?Data(數(shù)據(jù))?Redis?中提供了RedisTemplate和StringRedisTemplate,其中StringRedisTemplate是RedisTemplate的子類,兩個(gè)方法基本一致。本文介紹了SpringBoot整合Redis使用RedisTemplate和StringRedisTemplate的方法,需要的可以參考一下
    2022-12-12
  • Spring Security 安全框架應(yīng)用原理解析

    Spring Security 安全框架應(yīng)用原理解析

    這篇文章主要介紹了Spring Security 安全框架應(yīng)用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • Java基于控制臺(tái)界面實(shí)現(xiàn)ATM系統(tǒng)

    Java基于控制臺(tái)界面實(shí)現(xiàn)ATM系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java基于控制臺(tái)界面實(shí)現(xiàn)ATM系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Spring Security中的Servlet過(guò)濾器體系代碼分析

    Spring Security中的Servlet過(guò)濾器體系代碼分析

    這篇文章主要介紹了Spring Security中的Servlet過(guò)濾器體系,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java Redis Template批量查詢指定鍵值對(duì)的實(shí)現(xiàn)

    Java Redis Template批量查詢指定鍵值對(duì)的實(shí)現(xiàn)

    本文主要介紹了Java Redis Template批量查詢指定鍵值對(duì)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評(píng)論

台安县| 鹤壁市| 五莲县| 湘乡市| 游戏| 额济纳旗| 苗栗县| 醴陵市| 台州市| 五指山市| 依兰县| 克山县| 博爱县| 玉山县| 房产| 黄冈市| 柏乡县| 慈利县| 泰宁县| 万源市| 南投县| 凯里市| 安化县| 天峨县| 胶南市| 彩票| 洛川县| 漾濞| 壶关县| 台湾省| 襄城县| 海晏县| 临湘市| 河南省| 海兴县| 常宁市| 唐海县| 德州市| 大连市| 浮梁县| 黔江区|