java - @Component重新給bean命名后,為什么@Resource找不到?
問題描述
CompactDisc有多個(gè)實(shí)現(xiàn)類,我想要注入其中的一個(gè)
@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); }}
用默認(rèn)的bean可以
但是我把bean id改成其他,比如
@Component('segment')public class SgtPeppers implements CompactDisc { ...}
怎么就找不到了?
3月10號更新,今天又可以了,真是奇怪,還是沒找到出現(xiàn)問題的關(guān)鍵
3月17號:感覺是IDE的問題
問題解答
回答1:這肯定找不到啊,你用@Component就是自動注入,然后注入的名字就是sgtPeppers.@Resource是根據(jù)name取,你名字不對怎么能取對呢.補(bǔ)充一點(diǎn)自動注入名稱是根據(jù)類名 然后第一個(gè)字母小寫來注入的名字
回答2:你需要 指定 @Compoent('segment')
