老師,求分析異常原因,我把@Bean修改為這樣,還會拋出異常,代碼如下
//測試類不動 @Test public?void?testG(){ ????Store?store?=?super.getBean("stringStore"); } //StoreConfig類中的@Bean @Autowired private?Store<String>?s1; @Autowired private?Store<Integer>?s2; @Bean public?StringStore?stringStore(){ ????System.out.println("s1"+s1.getClass().getName()); ????System.out.println("s2"+s2.getClass().getName()); ????return?new?StringStore(); } @Bean public?IntegerStore?integerStore(){ ????return?new?IntegerStore(); } //然后拋出的異常和老師講解的異常一樣,我這樣改了,s1,s2都沒指定到多個bean的實例對象啊
2019-07-28
因為stringStore()方法執行的目的就是為了實例化s1,在方法體中使用s1,此時還沒有實例化完成,所以要報空指針異常。
2018-01-20
你這種需要添加 過濾@Autowiere("mingzi")就沒問題了 至于老師的為什么不報錯 可能是版本問題?
2016-10-26
......你這么寫,當執行到??System.out.println("s1"+s1.getClass().getName())這句的時候,
return?new?StringStore();這句還沒執行到啊 也就是說 此時IOC容器中連StringStore這個bean都是不存在的,
s1自然也是個空的嘍,那你要它怎么輸出,自然是個空指針嘍
2016-09-21
可以這樣寫 stringStoreTest:
@Bean(name="stringStoreTest")
public StoreConfig stringStoreTest(){
? ? System.out.println("s1:"+s1.getClass().getName());
? ? System.out.println("s2:"+s2.getClass().getName());
? ? ?return new StoreConfig();
}
測試類為:
@Test
public void testG() {
super.getBean("stringStoreTest");
}
結果跟老師顯示的一樣!否則會報 s1,s2 變量空指針異常!
2016-07-01
我也是啊 怎么解決呢?
2016-05-15
我也碰到這個問題了, 修改測試類的返回類型不能為Store或或其子類即可. 我用的是Spring4.2.6版本
2016-05-05
?System.out.println("s1"+s1.getClass().getName());
?System.out.println("s2"+s2.getClass().getName());
這兩個地方是需要對象不能為空的,而調用的時候是注解自動注入的,此時還沒有注入,所以會出錯誤,你可以先去掉這兩處,就可以通過;另外你如果想看一下注入是否成功,可以將成員變量變為公共的,然后去訪問
2016-04-19
你的spring版本是3 還是4,3好像不支持泛型。。。
2016-04-08