您的位置:首页技术文章
文章详情页

java - @Component重新给bean命名后,为什么@Resource找不到?

【字号: 日期:2024-02-01 10:49:43浏览:18作者:猪猪

问题描述

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); }}

java - @Component重新给bean命名后,为什么@Resource找不到?

用默认的bean可以

但是我把bean id改成其他,比如

@Component('segment')public class SgtPeppers implements CompactDisc { ...}

java - @Component重新给bean命名后,为什么@Resource找不到?

怎么就找不到了?

3月10号更新,今天又可以了,真是奇怪,还是没找到出现问题的关键

3月17号:感觉是IDE的问题

问题解答

回答1:

这肯定找不到啊,你用@Component就是自动注入,然后注入的名字就是sgtPeppers.@Resource是根据name取,你名字不对怎么能取对呢.补充一点自动注入名称是根据类名 然后第一个字母小写来注入的名字

回答2:

你需要 指定 @Compoent('segment')

标签: java