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