<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # classpath是什么? 在java項目中,你一定碰到過classpath,通常情況下,我們是用它來指定配置/資源文件的路徑。在剛開始學習的時候,自己也糊里糊涂,但是現在,是時候弄清楚它到底是指什么了。 顧名思義,classpath就是class的path,也就是類文件(`*.class`的路徑)。一談到文件的路徑,我們就很有必要了解一個java項目(通常也是web項目)它在真正運行時候,這個項目內部的目錄、文件的結構;這樣,我們才好分析、理解classpath。 # 開發時期web結構 下面,我以一個ssm的項目為例,我先把開發時候的項目的目錄結構圖放出來。根據maven的約定,一般我們的項目結構就像下面這樣 ![](https://box.kancloud.cn/26a38d7059e02c6bb6f56e47bbde742b_730x344.png) # classpath用在哪里了? 而我們經常用到classpath的地方,就是在指定一些配置/資源文件的時候會使用到。比如說,我們在web.xml中指定springmvc的配置文件,如下圖,我們使用:classpath:entry/dev/spring-mvc.xml;再比如,當我們把*Mapper.xml文件放在了main/java/../mapping/文件夾下時,在mybatis的配置文件中配置其位置,我們使用: `classpath*:**/mapper/mapping/*Mapper.xml` ![](https://box.kancloud.cn/57b129132a213ac8f9d735141657cf07_775x446.png) 很顯然,上面這2個classpath的配置,是為了告訴配置文件,去哪里尋找我們要指定的配置文件。要想弄清楚為什么是上面這樣寫的,我們就要來看看項目運行時(或者是發布后)的目錄結構了 # web項目發布后的目錄結構 我們使用IDEA對項目進行打包,一種是war包,一種是explorer的文件夾,war包解壓后就是explorer了。我們來對解壓后的目錄結構進行分析。 ![](https://box.kancloud.cn/bdcad4c4c580d966a882d81f17db3fcf_743x431.png) 經過對比,我們要注意到,開發時期的項目里,src/main/下面的java和resources文件夾都被(編譯)打包到了生產包的WEB-INF/classes/目錄下;而原來WEB-INF下面的views和web.xml則仍然還是在WEB-INF下面。同時由maven引入的依賴都被放入到了WEB-INF/lib/下面。**最后,編譯后的class文件和資源文件都放在了classes目錄下。** ![](https://box.kancloud.cn/7e1a729173feed8ff3d8978d5cffc5da_702x765.png) # 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/`下任意層的目錄,只要符合后面的文件路徑,都會被作為資源文件找到。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看