使用@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。