个人对s1装配失败的理解

来源:4-8 Spring Bean装配之基于Java的容器注解说明——基于泛型的自动装配

十佳菜鸟

2015-09-18 19:19

容器中有两个bean都是StringStore类型,要把哪个自动装配给s1呢,spring糊涂了,因为@autowired是按类型自动装配的,有两个这样的类型的bean当然不好办了,报异常吧哈哈

写回答 关注

4回答

  • implements
    2017-08-29 14:07:26

    这个我也是没有看懂,s1这个变量名,无法自动装配,如果@Qualifier指定,那还不如直接把变量名改成stringStore呢,但是为什么老师的s1又可以自动装配,这让我很是困惑。

  • 慕后端2198842
    2016-10-26 16:14:50

    public Store stringStoreTest() {

    return new StringStore();

    }

    返回类型就是Store啊 ,多态嘛


  • 油金哇卡呀酷咧
    2016-09-26 14:26:12

    可是老师用的是

    @Bean(name = "stringStoreTest")

    public Store stringStoreTest() {

    System.out.println("s1 : " + s1.getClass().getName());

    System.out.println("s2 : " + s2.getClass().getName());

    return new StringStore();

    }

    把StringStroe改成了   Store 那 但是返回的类型没有变,不久相当于还是有两个StringStore类型吗  .  

    求大神解释    

    未卜先知

    我也是一样的困惑

    2016-12-13 18:59:12

    共 1 条回复 >

  • 木虫丶
    2016-01-05 10:57:48

    那就用@Resource或者用@autowired+@Qualifier就行了,用来区分两个类型一样的bean啊

    慕后端219... 回复Aurora...

    @Autowired @Qualifier(value="stringStore") private Store<String> s1; 在属性上指定@Qualifier(value="stringStore") value为你要指定注入的bean的id

    2016-10-26 16:08:12

    共 2 条回复 >

Spring入门篇

为您带来IOC和AOP的基本概念及用法,为后续高级课程学习打下基础

268787 学习 · 963 问题

查看课程

相似问题