spring-boot專案mapperBean找不到問題解決方案
使用spring-boot整合mybatis時遇到了載入不到mapper類檔案bean的情況,網上找了最終終於解決了,我在這裡分享一下整個排查的流程並把網上哪些方法都進行一下彙總。
錯誤截圖:
上面這個截圖是maven install的時候報出的,大概意思就是沒有可用的ArticleMapper這個bean。
上面這個截圖是啟動boot專案時候報出的,也是說沒有可用的ArticleMapper這個bean。
解決方法一:
spring-boot專案bean的建立是在啟動時自動掃描建立的,預設掃描的位置是主啟動類所在的包及子包。下面是我的專案結構截圖,DemoApplication.java是我的主啟動類,按照這個路徑boot會掃描com.example下的所有檔案。如果你的mapper檔案所在位置不在這當中可以移過來看看問題是否解決。
解決方法二:
由於我的mapper檔案在上面的路徑下,所以我在主啟動類檔案上加入了@MapperScan("com.example.demo.mapper")註解。該註解的意思就是指定掃描mapper檔案的位置,引號裡是你mapper檔案所在的位置。注意使用ide拷貝包路徑的時候有的是使用“/”號分割的,需要改成“.”號。正常情況下你的mapper檔案只要在解決方法一中正確的路徑下就不會出現漏掃的情況,如果不在也可以使用這個方法去指定。
解決方法三:
仔細檢查類名與自動注入時的名字是否相同。
在確定沒有問題之後決定再去仔細看看錯誤,於是把啟動報錯往上拉發現還報出了找不到mapper.xml指定路徑的錯誤。
檢查配置檔案中配置的路徑發現確實路徑寫錯了,這裡的路徑是從src/main/resources開始指定的,我這裡少寫了resources。加上重新clean、install,啟動成功。
以上是我解決的整個流程,遇到問題還是得細心得看清楚問題得出處。不能因為看到bean沒有找到就直接去糾結bean載入得問題。