1.問題描述
在Idea的spring工程裡,經常會遇到Could not autowire. No beans of 'xxxx' type found的錯誤提示。但程式的編譯和運作都是沒有問題的,這個錯誤提示并不會産生影響。但紅色的錯誤提示在有些有強迫症的程式員眼裡,多多少少有些不太舒服。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL3EDM4cTOxQjMx0iM5cTO1YjMxEzMyITM2EDMy0CM3ATMyczLcJTM2EDMy8CXwcDMxIzNvw1ZvxmYvwVbvNmLzd2bsJmbj5SNxAjMzV2Zh1Wavw1LcpDc0RHaiojIsJye.png)
2. 原因
原因可能有兩個,第一個是IntellijIDEA本身工具的問題。第二個便是我們導入@Service包的時候導入包錯誤造成的
第一種原因,spring auto scan配置,在編輯情況下,無法找不到對應的bean,于是提示找不到對應bean的錯誤。常見于mybatis的mapper,如下:
<!-- mapper scanner configurer -->
<bean id="mapperScannerConfig" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.adu.spring_test.mybatis.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
3. 解決方案
針對第一種原因,解決辦法是:降低Autowired檢測的級别,将Severity的級别由之前的error改成warning或其它可以忽略的級别。