使用@Autowired 自動裝載,報java.lang.NullPointerException錯誤

使用@Autowired 自動裝載,但是報java.lang.NullPointerException錯誤,

後來測試,發現如下圖所示,jdbcTemplate輸出爲null

 

經反覆研究發現,自動裝載並沒有把配置文件中配置的bean轉載到內存中。

採用下面的方式,在應用實現類中去測試就可以測試通過,輸出正常的bean。

在這個中方式,在接口實現類中,TellersADaoImpl實現了TellersADao接口,是自動裝載的,在程序運行過程中,可以實現自動裝載。

 

後來研究發現,Spring的自動裝載是在ctx=new ClassPathXmlApplicationContext("applicationContext.xml");的時候自動裝載。

在實例化的時候,會去根據<context:component-scan    base-package="com.spring.*"></context:component-scan>中配置的掃描範圍,掃描所有的有@Autowired註解的bean,進行裝載,轉載完以後,所有地方都可以使用這裏bean了。

在最上面失敗的,輸出爲null的測試中,還沒有對Spring配置文件進行讀取,系統也不知道哪個文件是spring的配置文件,所以所有的bean還都沒有進行掃描,還都沒有進行裝載,所以輸出爲null。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章