天天看點

expected at least 1 bean which qualifies as autowire candidate for this dependencyexpected at least 1 bean which qualifies as autowire candidate for this dependency

expected at least 1 bean which qualifies as autowire candidate for this dependency

異常背景

  • 表中新增一個字段,表已建立完畢,相關DAO層接口沒有新增,于是重新使用MyBatis 自動生成工具,再次生成

異常現象

  • 項目啟動異常,無法啟動,提示 XXXMapper 依賴找不到,但此XXXMapper及異常堆棧資訊顯示的類都是很久以前的,是以不存在問題

異常定位

  • 逐一檢視新增的 XML 配置檔案
  • IDEA + MyBatis 插件

異常分析

  • 使用MyBatis 自動生産工具時,沒有将已有的類PO及Mapper删除,我以為是覆寫生成,實際是追加,但是Mapper中相關内容都生成了兩次
  • 另一個表中新增一個屬性,我修改了Mapper,增加了字段與屬性的映射,但忘了修改PO沒有增加這個屬性(中間有事被打斷了)

異常反思

  • MyBatis XML 配置檔案錯誤,影響項目啟動,且不容易定位問題,異常堆棧資訊列印的内容不是最終的問題所在
  • 問題解決,要及時記錄,要深究根本,不然下次還會發生
  • 工作時要有規劃,盡量将每一個步驟都寫出來,及時被打斷,也能快速回歸工作位置