1. 程式人生 > >IDEA引入dao介面,Could not autowire. No beans of 'UserMapper' type found

IDEA引入dao介面,Could not autowire. No beans of 'UserMapper' type found

問題描述

使用了一段時間的Eclipse做開發,聽業界對IDEA的評價蠻高,所以想用IDEA搭建一個框架出來,並做開發,但是這個東西並沒有我想象的那麼友好,本來一個簡易的框架很容易就能夠搭建起來的,但是弄了很久都沒能完成,主要時間浪費在了填坑的路上,進入正題:使用MyBatis的時候,在ServiceImpl通過SpringMVC註解的形式引入dao介面(@Resource或者@Auterwired),在dao介面(在IDEA裡面好像改成了mapper,但實質是一樣的)變數上,丟擲瞭如題的異常
這裡寫圖片描述
網上找了很多的解決方案,收效甚微——有人用忽略告警配置的,我的專案裡面並不能成功;還有人推薦用@Autowired(required = false)這種方式的,忽略這個dao的bean建立,我的專案倒是能夠啟動,但我也不可能每一個dao都配置那麼一個註解吧?
相似的解決方案還有很多,但是我想說上述的這些方法都不能真正的從本質上解決問題

原因分析

其實這正是IDEA比Eclipse更優秀的地方,你們真別怪IDEA,它只是比Eclipse的校驗更加嚴格而已,所以才會造成類似的報錯,譬如在配置檔案裡能自封閉的標籤,你如果用了標籤對的形式,他都要丟擲警告。好了,說了那麼多,最根本的原因在於我們缺少一個Mybatis Plugin的外掛支援。

解決方案

開啟IDEA,File–>Settings–>Plugins,搜尋Mybatis Plugin,選擇如圖的外掛,別選其他的!
這裡寫圖片描述
下載完成以後,這個東西並不能直接啟用,因為他要收費,既然是做程式的,就要懂得如何去破解,貼上網址:MyBatis Plugin 學習使用


破解完成後,再次啟動IDEA,問題就不會再出現了,而且這才是從根本上解決問題的方式。
這裡寫圖片描述