bean注入失败的几种情况和解决思路:NoSuchBeanDefinitionException: No qualifying bean of type
bean注入失敗,無非是兩種情況,要么注入的寫法出錯,要么被注入的Bean未定義。
1.Bean未定義
如果是直接在XML中配置bean標簽的時候
檢查id和class是否寫對
如果是用注解形式申明Bean
先檢查@Controller、@Service、@Repository、 @Component 是否加上其中的一個,
再檢查包掃描的路徑是否包含有這個類,
再檢查配置文件是否在web.xml中有配置,這個可以在項目的啟動日志中看到,出現類似Loading XML bean definitions from class path resource [spring-config.xml]的日志,就代表spring-config.xml被啟動加載到了。
2.注入寫法出錯
如果引用都是類名的首字母小寫,并且類都是唯一的,那么直接用@Autowired注入
如果出現相同類名,不同實現,需要不同的Name區分的,
比如:
@Resource(name=“userServiceForNew”)
@Resource(name=“userServiceForOld”)
userServiceForNew和userServiceForNew就對于不同bean的id
比如多數據源,j就對于多個不同的sqlSessionFactory,注入的時候就可以用id區分,byName注入
簡單說下@Resource和@Autowired的區別
對于一般的Bean注入,用哪個都行
默認@Autowired是按類型type自動注入
默認@Resource是按名字byName自動注入,也可以指定type注入
@Autowired是Spring提供的注解
@Resource是J2EE提供的注解
還有@Qualifier,@Inject等注入的注解,個人認為可以忘記了,記住@Autowired和@Autowired就好了。
總結
以上是生活随笔為你收集整理的bean注入失败的几种情况和解决思路:NoSuchBeanDefinitionException: No qualifying bean of type的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [设计模式] ------ 简单工厂模式
- 下一篇: iOS中WebKit框架应用与解析