看了这节,还是没明白里面的内部逻辑,泛型的注解是怎么用的,有人能讲解下么,还有s1哪个报错,修改为Store后返回的不还是StringStore么?这有什么区别?
@Autowired private Store<String> s1; @Autowired private Store<Integer> s2; @Bean public StringStore stringStore() { return new StringStore(); } @Bean public IntegerStore integerStore() { return new IntegerStore(); } @Bean(name = "stringStoreTest") public Store stringStoreTest() { System.out.println("s1 : " + s1.getClass().getName()); System.out.println("s2 : " + s2.getClass().getName()); return new StringStore(); }
测试类:
@Test public void testG() { StringStore store = super.getBean("stringStoreTest"); }
有点困惑,不知道这段讲了什么,有人能讲解下么?
尤其是主函数部分的三个@Bean,还有@Autowired,我还是不太明白里面的逻辑
还有S1哪个报错,修改为Store后返回的不还是StringStore么?那么在@Autowired的时候,它是怎么区分的?
或者说查找的时候是看声明的返回值的类型?那么如果还有一个类实现了Store<String>的,也正好@Bean了,是不是也是无法区分
@Bean public StringStore stringStore(){ return new StringStore(); }
@Bean(name="stringStoreTest") public Store stringStoreTest(){ return new StringStore(); }