課程
/后端開發(fā)
/Java
/Spring入門篇
為什么注入是null呢
2018-10-23
源自:Spring入門篇 2-1
正在回答
使用junit測試時,先通過反射生成一個測試類對象。這個對象實例化之后,也就是jvm為他分配內(nèi)存,他包含的oneinterface也分配好相應的內(nèi)存大小,但是沒有賦值,也就是null,因為這個時候還沒有加載spring*.xml文件,無法解析@Resource標簽。之后調用其構造函數(shù),就像你的例子里面,這個時候才去為配置文件賦值為spring*.xml。通過測試類對象執(zhí)行測試方法的時候先執(zhí)行before,這個時候測試類對象被用,因為線程安全,加載spring*.xml文件并正確掃描到了測試類,但是無法為測試類對象注入,因為這塊內(nèi)存的讀取是線程安全的,所以oneinterface還是null。個人理解
問題解決了嗎,mark一下
慕田峪5532335 提問者
舉報
為您帶來IOC和AOP的基本概念及用法,為后續(xù)高級課程學習打下基礎
3 回答注解測試報錯的問題
2 回答注解里的applicationContext是啥
3 回答里面用到到是注解注入jdbc的配置信息,config.property,注解都有classpath:了,為什么xml中還有在引入config.property呢
2 回答設值注入的問題
2 回答設值注入問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2018-11-29
使用junit測試時,先通過反射生成一個測試類對象。這個對象實例化之后,也就是jvm為他分配內(nèi)存,他包含的oneinterface也分配好相應的內(nèi)存大小,但是沒有賦值,也就是null,因為這個時候還沒有加載spring*.xml文件,無法解析@Resource標簽。之后調用其構造函數(shù),就像你的例子里面,這個時候才去為配置文件賦值為spring*.xml。通過測試類對象執(zhí)行測試方法的時候先執(zhí)行before,這個時候測試類對象被用,因為線程安全,加載spring*.xml文件并正確掃描到了測試類,但是無法為測試類對象注入,因為這塊內(nèi)存的讀取是線程安全的,所以oneinterface還是null。個人理解
2018-10-23
問題解決了嗎,mark一下