首页 新闻 搜索 专区 学院

spring 中的@bean 返回类型相同的都会被调用吗?

0
悬赏园豆:10 [已解决问题] 解决于 2018-09-18 15:19
@Configuration
public class CDPlayerConfig {
  @Bean(name = "bean1")
  public CompactDisc sgtPeppers() {
    return new SgtPeppers();
  }

  @Bean(name = "bean2")
  public CompactDisc compactDisc() {
    return new SgtPeppers();
  }

}

测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes= CDPlayerConfig.class,loader=AnnotationConfigContextLoader.class)
public class KnightJavaConfigInjectionTest {

  @Resource(name = "bean2")
  CompactDisc sgtPeppers;
  
  @Test
  public void test1() {
    sgtPeppers.play();
  }

}

我发现两个bean都执行了,而且是是bean1先执行,我的疑问就来了,指定name有啥用?

~冰的主页 ~冰 | 小虾三级 | 园豆:509
提问于:2018-09-17 22:57
< >
分享
最佳答案
0

bean在启动的时候都会注册初始化,不管你用没用@Resource,@Resource只是你哪个地方去使用bean而已

收获园豆:10
_legends | 小虾三级 |园豆:509 | 2018-09-18 14:30

赞,秒懂,非常感谢。

~冰 | 园豆:509 (小虾三级) | 2018-09-18 15:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册