摘要:項目中的到底是什么在項目中,你一定碰到過,通常情況下,我們是用它來指定配置資源文件的路徑。項目發布后的目錄結構我們使用對項目進行打包,一種是包,一種是的文件夾,包解壓后就是了。
java項目中的classpath到底是什么
在java項目中,你一定碰到過classpath,通常情況下,我們是用它來指定配置/資源文件的路徑。在剛開始學習的時候,自己也糊里糊涂,但是現在,是時候弄清楚它到底是指什么了。
顧名思義,classpath就是class的path,也就是類文件(*.class的路徑)。一談到文件的路徑,我們就很有必要了解一個java項目(通常也是web項目)它在真正運行時候,這個項目內部的目錄、文件的結構;這樣,我們才好分析、理解classpath。
開發時期的web項目結構下面,我以一個ssm的項目為例,我先把開發時候的項目的目錄結構圖放出來。根據maven的約定,一般我們的項目結構就像下面這樣。
classpath用在哪里了?而我們經常用到classpath的地方,就是在指定一些配置/資源文件的時候會使用到。比如說,我們在web.xml中指定springmvc的配置文件,如下圖,我們使用:classpath:entry/dev/spring-mvc.xml;再比如,當我們把*Mapper.xml文件放在了main/java/../mapping/文件夾下時,在mybatis的配置文件中配置其位置,我們使用:
classpath*:**/mapper/mapping/*Mapper.xml
很顯然,上面這2個classpath的配置,是為了告訴配置文件,去哪里尋找我們要指定的配置文件。要想弄清楚為什么是上面這樣寫的,我們就要來看看項目運行時(或者是發布后)的目錄結構了。
web項目發布后的目錄結構我們使用IDEA對項目進行打包,一種是war包,一種是explorer的文件夾,war包解壓后就是explorer了。我們來對解壓后的目錄結構進行分析。
經過對比,我們要注意到,開發時期的項目里,src/main/下面的java和resources文件夾都被(編譯)打包到了生產包的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/下任意層的目錄,只要符合后面的文件路徑,都會被作為資源文件找到。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76533.html
摘要:只知道把配置文件如等放到目錄就是存放代碼文件的目錄,然后使用來讀取,都放到目錄準沒錯,那么到底到底指的什么位置呢路徑下的文件在編譯后會放到路徑下吧。默認的是在這里。如果單元測試的話,可以在啟動或者運行的選項里指定的路徑的。 只知道把配置文件如:mybatis.xml、spring-web.xml、applicationContext.xml等放到src目錄(就是存放代碼.java文件的...
摘要:到了這個時候,我們已經可以把京東的分類首頁的手機模塊給抓取下來,并且保存成。 GeccoSpider爬蟲例子 前些天,想要用爬蟲抓取點東西,但是網上很多爬蟲都是使用python語言的,本人只會java,因此,只能找相關java的爬蟲資料,在開源中國的看到國內的大神寫的一個開源的爬蟲框架,并下源碼研究了一下,發現跟官網描述的一樣,夠簡單,簡潔易用!有興趣的朋友可以到官網了解下! 我這個例...
摘要:到了這個時候,我們已經可以把京東的分類首頁的手機模塊給抓取下來,并且保存成。 GeccoSpider爬蟲例子 前些天,想要用爬蟲抓取點東西,但是網上很多爬蟲都是使用python語言的,本人只會java,因此,只能找相關java的爬蟲資料,在開源中國的看到國內的大神寫的一個開源的爬蟲框架,并下源碼研究了一下,發現跟官網描述的一樣,夠簡單,簡潔易用!有興趣的朋友可以到官網了解下! 我這個例...
摘要:第一階段基礎知識第一章開發環境的配置知識鋪墊命令在正式進入學習之前我們來了解一個看起來格很高的東西命令命令,計算機術語,是指操作系統的命令,是一種面向磁盤的操作命令,主要包括目錄操作類命令磁盤操作類命令文件操作類命令和其它命令。 showImg(https://segmentfault.com/img/remote/1460000019264541?w=600&h=242); 第一階段...
閱讀 3400·2021-10-08 10:15
閱讀 5440·2021-09-23 11:56
閱讀 1467·2019-08-30 15:55
閱讀 445·2019-08-29 16:05
閱讀 2725·2019-08-29 12:34
閱讀 2036·2019-08-29 12:18
閱讀 914·2019-08-26 12:02
閱讀 1650·2019-08-26 12:00