Could not autowire. No beans of ‘xxx” type found(三種方法)


 

我當時提示錯誤是,不影響使用,可是就是報錯讓人不爽。

Could not autowire. No beans of 'RequestMappingHandlerMapping' type found.

 

@Autowired
private RequestMappingHandlerMapping requestMappingHandlerMapping;

 

后來改成@Resource注入,就不報錯了,

@Resource
private RequestMappingHandlerMapping requestMappingHandlerMapping;

 

@ Autowired和@Resource區別一個是默認按照類型,一個默認按照名字;我小小的測試了下Autowired會拿着這個默認名稱找類型,找不到就報錯了。可是又能運行我就沒深研究了。

這個要是自己寫的實體,可以在實體上加對應的@Service("名稱"),或者@Repository。

 

網上其他方法:

 

1.問題描述

  在Idea的spring工程里,經常會遇到Could not autowire. No beans of 'xxxx' type found的錯誤提示。但程序的編譯和運行都是沒有問題的,這個錯誤提示並不會產生影響。但紅色的錯誤提示在有些有強迫症的程序員眼里,多多少少有些不太舒服。

   

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或其它可以忽略的級別。

       針對第二種原因,解決方案當然是導入正確的包。首先我們來看下最容易導入的錯誤包,如下所示:

import com.alibaba.dubbo.config.annotation.Service;

正確的包應該是下面這個

import org.springframework.stereotype.Service;

切記切記啊!!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM