天天看點

搭建mybatis時的小問題

1、源檔案中的xml檔案經過編譯後沒有打包到classes中去,在源檔案包中寫的mapper檔案運作時找不到。

  解決辦法:

  pom檔案build下添加編譯時加入xml和resource檔案下的所有檔案。

  

<resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>      

2、Spring整合mybatis時,關于配置檔案的路徑,classpath與classpath*的問題:

classpath:

maven在編譯打包時,會将src/main/java下的類打包至至target/classes,src/main/resources的檔案複制(一般是資源檔案,例如Spring的配置檔案)到target/classes,src/test/java至target/test-classes,複制src/test/resources的檔案至target/test-classes;這裡也說明,上面第一個問題中,我們為什麼要在pom檔案中加入那幾行了。不然運作時在classpath下找不到mapper檔案啊T_T

maven項目的classpath在  target/classes/ , maven項目一般資源檔案放在maven工程的 src/main/resources 資源檔案夾下,源碼檔案放在 src/main/java/下, 那麼java檔案夾和resources檔案夾在運作時就是classpath的真實位置( target/classes/ ), 是以 java和resources目錄下的檔案都可以當成在classpath路徑下。運作過程中可以通過以下代碼來獲得目前類的classpath路徑:

類名.class.getClassLoader().getResource("").getPath();      

classpath*:

classpath*,不僅僅包括在本項目的target/classes目錄,還包括所有本項目引入的ja包裡面的classes目錄。

By---    Gonjan

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,