文章詳情頁
java - @Component重新給bean命名后,為什么@Resource找不到?
問題描述
CompactDisc有多個實現類,我想要注入其中的一個
@Componentpublic class SgtPeppers implements CompactDisc { private String title = 'Sgt. Pepper’s Lonely Hearts Club Band'; private String artist = 'The Beatles'; public void play() {System.out.println('Playing ' + title + ' by ' + artist); }}
用默認的bean可以
但是我把bean id改成其他,比如
@Component('segment')public class SgtPeppers implements CompactDisc { ...}
怎么就找不到了?
3月10號更新,今天又可以了,真是奇怪,還是沒找到出現問題的關鍵
3月17號:感覺是IDE的問題
問題解答
回答1:這肯定找不到啊,你用@Component就是自動注入,然后注入的名字就是sgtPeppers.@Resource是根據name取,你名字不對怎么能取對呢.補充一點自動注入名稱是根據類名 然后第一個字母小寫來注入的名字
回答2:你需要 指定 @Compoent('segment')
標簽:
java
排行榜
