Field baseMapper in com.xxx required a single bean,but 100 were found --------Mybatis-Plus
報錯發生時間:項目啟動時。
報錯英文描述:Field baseMapper in com.xxx required a single bean,but 100 were found
報錯信息中文描述:文件baseMapper只需要一個bean服務,但是到了多個,所以它不知道選哪個
?
? ?今天開發了新的代碼后,然后啟動項目,報了這個錯。如下:
一開始以為是我把哪里的配置改了,導致spring出錯了,后來排查了下,發現我并沒有更改任何的配置信息。因此只好從更改的代碼中去尋找。
? ? ? 后來發現我有個接口和接口的實現類繼承了mybatis-plus,如下:
然后我又跳進去IBaseService方法里面(ps,IBaseService是自己寫的一個方法,它繼承mybatis-plus的IService)
我們這里可以看到IService<T>這個接口是支持需要泛型的。因此,當我們有很多個mapper文件去實現IService,相當于IService實現了多次。所以我們在繼承IService時,需要標注自己到底需要哪個Mapper來為我們服務,否則就會報上述找不到服務的錯。最后更改如下:
有兩種情況:
情況一:你的這個類其實不需要操作到數據庫,所以這個時候直接把繼承IService給去掉就好。
情況二:你的這個類需要操作到數據庫,那么就把相應的泛型給加上,這樣它就知道你到底要找的是哪個mapper。
如下,假設我有一張User表,然后它對應的bean的名稱是User
?
最后做個總結就是,在開發過程中還是要仔細小心,有可能一點點疏忽就會導致你需要找很久的解決方案,共勉!
感謝大家的觀看,謝謝。
總結
以上是生活随笔為你收集整理的Field baseMapper in com.xxx required a single bean,but 100 were found --------Mybatis-Plus的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 23-C基础梳理
- 下一篇: 区块链未来三年内将广泛落地