欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java項(xiàng)目中classpath的理解

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

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

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

開發(fā)時(shí)期的web項(xiàng)目結(jié)構(gòu)

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

classpath用在哪里了?

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

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

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

web項(xiàng)目發(fā)布后的目錄結(jié)構(gòu)

我們使用IDEA對項(xiàng)目進(jìn)行打包,一種是war包,一種是explorer的文件夾,war包解壓后就是explorer了。我們來對解壓后的目錄結(jié)構(gòu)進(jìn)行分析。

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

classpath原來是這個(gè)

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

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

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

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

相關(guān)文章

  • Spring中Bean創(chuàng)建完后打印語句的兩種方法

    Spring中Bean創(chuàng)建完后打印語句的兩種方法

    這篇文章主要介紹了Spring中Bean創(chuàng)建完后打印語句的兩種方法,一個(gè)是實(shí)現(xiàn)InitializingBean接口,另一個(gè)使用@Bean注解和initMethod屬性,通過代碼示例介紹的非常詳細(xì),感興趣的小伙伴可以參考閱讀
    2023-07-07
  • springmvc接收參數(shù)為日期類型詳解

    springmvc接收參數(shù)為日期類型詳解

    這篇文章主要介紹了springmvc接收參數(shù)為日期類型,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • MQ的分類組成優(yōu)缺點(diǎn)測試點(diǎn)入門教程

    MQ的分類組成優(yōu)缺點(diǎn)測試點(diǎn)入門教程

    這篇文章主要為大家介紹了MQ的分類組成優(yōu)缺點(diǎn)測試點(diǎn)入門教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Java編程實(shí)現(xiàn)遞增排序鏈表的合并

    Java編程實(shí)現(xiàn)遞增排序鏈表的合并

    這篇文章主要介紹了Java編程實(shí)現(xiàn)遞增排序鏈表的合并,兩種方法,代碼分享給大家,供需要的朋友參考。
    2017-10-10
  • SpringBoot整合canal實(shí)現(xiàn)數(shù)據(jù)同步的示例代碼

    SpringBoot整合canal實(shí)現(xiàn)數(shù)據(jù)同步的示例代碼

    本文主要介紹了SpringBoot整合canal實(shí)現(xiàn)數(shù)據(jù)同步,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • java中對象和Map互相轉(zhuǎn)換的幾種常見方式舉例

    java中對象和Map互相轉(zhuǎn)換的幾種常見方式舉例

    Map在日常開發(fā)應(yīng)用中的頻率很高,最常用的實(shí)現(xiàn)類是HashMap和有序的TreeMap,下面這篇文章主要給大家介紹了關(guān)于java中對象和Map互相轉(zhuǎn)換的幾種常見方式舉例,需要的朋友可以參考下
    2024-01-01
  • java代碼mqtt接收發(fā)送消息方式

    java代碼mqtt接收發(fā)送消息方式

    這篇文章主要介紹了java代碼mqtt接收發(fā)送消息方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 最安全的加密算法Bcrypt防止數(shù)據(jù)泄露詳解

    最安全的加密算法Bcrypt防止數(shù)據(jù)泄露詳解

    這篇文章主要為大家介紹了最安全的加密算法Bcrypt防止數(shù)據(jù)泄露詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Java 實(shí)現(xiàn)LZ78壓縮算法的示例代碼

    Java 實(shí)現(xiàn)LZ78壓縮算法的示例代碼

    這篇文章主要介紹了Java 實(shí)現(xiàn)LZ78壓縮算法的示例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • java編程進(jìn)階小白也能手寫HashMap代碼

    java編程進(jìn)階小白也能手寫HashMap代碼

    這篇文章是一篇java小白進(jìn)階篇本文教大家手寫一個(gè)HashMap實(shí)現(xiàn)的示例代碼,有需要的朋友可以借鑒參考下,希望對大家能夠有所進(jìn)益,祝大家早日升職加薪
    2021-10-10

最新評論