一、問題描述
一位同事在開發新功能的時候報錯,但是之前的功能都不會報這個錯,只有這個新功能的代碼會導致項目啓動報錯。
報錯信息如下:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'expGradeService': Unsatisfied dependency expressed through field 'expGradeDao'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.lis.eiknb.eims.analysis.integralmanage.expgrade.dao.ExpGradeDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
在排查過程中,發現新寫的代碼裏面的層級多了一個
錯誤的:
com.lis.eiknb.eims.analysis.integralmanage.expgrade.dao.ExpGradeDao
正確的:
com.lis.eiknb.eims.analysis.expgrade.dao.ExpGradeDao
但我們代碼掃描那邊都是按這個規範來定的:
所以才導致了找不到對應的類,創建bean失敗。去掉多餘的integralmanage目錄,重新打包,啓動服務成功。
備註:報這種錯誤的原因可能有很多,這只是我遇到的問題處理的方案,希望能給其他人帶來有用的參考思路。