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

java項目中classpath的理解

 更新時間:2021年12月31日 10:49:56   作者:柒葉  
這篇文章介紹了java項目中classpath的理解,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在java項目中,你一定碰到過classpath,通常情況下,我們是用它來指定配置/資源文件的路徑。在剛開始學習的時候,自己也糊里糊涂,但是現(xiàn)在,是時候弄清楚它到底是指什么了。

顧名思義,classpath就是class的path,也就是類文件(*.class的路徑)。一談到文件的路徑,我們就很有必要了解一個java項目(通常也是web項目)它在真正運行時候,這個項目內(nèi)部的目錄、文件的結構;這樣,我們才好分析、理解classpath。

開發(fā)時期的web項目結構

下面,我以一個ssm的項目為例,我先把開發(fā)時候的項目的目錄結構圖放出來。根據(jù)maven的約定,一般我們的項目結構就像下面這樣。

classpath用在哪里了?

而我們經(jīng)常用到classpath的地方,就是在指定一些配置/資源文件的時候會使用到。比如說,我們在web.xml中指定springmvc的配置文件,如下圖,我們使用:classpath:entry/dev/spring-mvc.xml;再比如,當我們把*Mapper.xml文件放在了main/java/../mapping/文件夾下時,在mybatis的配置文件中配置其位置,我們使用:

classpath*:**/mapper/mapping/*Mapper.xml

很顯然,上面這2個classpath的配置,是為了告訴配置文件,去哪里尋找我們要指定的配置文件。要想弄清楚為什么是上面這樣寫的,我們就要來看看項目運行時(或者是發(fā)布后)的目錄結構了。

web項目發(fā)布后的目錄結構

我們使用IDEA對項目進行打包,一種是war包,一種是explorer的文件夾,war包解壓后就是explorer了。我們來對解壓后的目錄結構進行分析。

經(jīng)過對比,我們要注意到,開發(fā)時期的項目里,src/main/下面的java和resources文件夾都被(編譯)打包到了生產(chǎn)包的WEB-INF/classes/目錄下;而原來WEB-INF下面的views和web.xml則仍然還是在WEB-INF下面。同時由maven引入的依賴都被放入到了WEB-INF/lib/下面。最后,編譯后的class文件和資源文件都放在了classes目錄下。

classpath原來是這個

在編譯打包后的項目中,根目錄是META-INF和WEB-INF 。這個時候,我們可以看到classes這個文件夾,它就是我們要找的classpath。

在第1個例子里,classpath:entry/dev/spring-mvc.xml 中,classpath就是指WEB-INF/classes/這個目錄的路徑。需要聲明的一點是,使用classpath:這種前綴,就只能代表一個文件。

在第2個例子里,classpath*:**/mapper/mapping/*Mapper.xml,使用classpath*:這種前綴,則可以代表多個匹配的文件;**/mapper/mapping/*Mapper.xml,雙星號**表示在任意目錄下,也就是說在WEB-INF/classes/下任意層的目錄,只要符合后面的文件路徑,都會被作為資源文件找到。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java實現(xiàn)Promise.all()的示例代碼

    Java實現(xiàn)Promise.all()的示例代碼

    這篇文章主要介紹了Java實現(xiàn)Promise.all()的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 一文詳解Java項目中如何優(yōu)雅的使用枚舉類型

    一文詳解Java項目中如何優(yōu)雅的使用枚舉類型

    枚舉類型在開發(fā)中是很常見的,有非常多的應用場景,這篇文章我們就來學習一下項目中如何優(yōu)雅的使用枚舉類型,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • Spring mvc防止數(shù)據(jù)重復提交的方法

    Spring mvc防止數(shù)據(jù)重復提交的方法

    這篇文章主要為大家詳細介紹了Spring mvc防止數(shù)據(jù)重復提交的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Java 反射機制

    Java 反射機制

    這篇文章簡要的說明了Java的反射機制,Java的反射是框架設計的靈魂,本文通過例子能看的更加清晰的理解
    2021-06-06
  • Java類加載機制實現(xiàn)步驟解析

    Java類加載機制實現(xiàn)步驟解析

    這篇文章主要介紹了Java類加載機制實現(xiàn)步驟解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • java8 實現(xiàn)提取集合對象的每個屬性

    java8 實現(xiàn)提取集合對象的每個屬性

    這篇文章主要介紹了java8 實現(xiàn)提取集合對象的每個屬性方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Windows Zookeeper安裝過程及啟動圖解

    Windows Zookeeper安裝過程及啟動圖解

    這篇文章主要介紹了Windows Zookeeper安裝過程及啟動圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • springboot整合Shiro的步驟

    springboot整合Shiro的步驟

    這篇文章主要介紹了springboot整合Shiro的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2021-01-01
  • Spring Cloud之配置中心的搭建

    Spring Cloud之配置中心的搭建

    這篇文章主要介紹了Spring Cloud之配置中心的搭建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • spring配置掃描多個包問題解析

    spring配置掃描多個包問題解析

    這篇文章主要介紹了spring配置掃描多個包問題解析,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10

最新評論

平罗县| 天门市| 清水河县| 六盘水市| 房山区| 西丰县| 吉林市| 宁晋县| 河北区| 星座| 拉孜县| 大城县| 华池县| 清新县| 鄱阳县| 抚远县| 广西| 高清| 洞口县| 桐庐县| 商洛市| 鹿邑县| 东乌珠穆沁旗| 库尔勒市| 镇坪县| 德清县| 米林县| 九江县| 安宁市| 运城市| 河源市| 玉树县| 耒阳市| 萨迦县| 海门市| 大埔县| 静宁县| 榆树市| 民权县| 奇台县| 和平区|