问答详情
源自:2-1 IOC及Bean容器

我这里尝试的是注解,但是注入有点问题

https://img4.mukewang.com/5bcee697000126ec11760601.jpg

https://img1.mukewang.com/5bcee69700011db015420902.jpg

spacer.gif

https://img.mukewang.com/5bcee6d2000155fc12210584.jpg


为什么注入是null呢

提问者:慕田峪5532335 2018-10-23 17:16

个回答

  • 慕前端6229441
    2018-11-29 17:59:11

    使用junit测试时,先通过反射生成一个测试类对象。这个对象实例化之后,也就是jvm为他分配内存,他包含的oneinterface也分配好相应的内存大小,但是没有赋值,也就是null,因为这个时候还没有加载spring*.xml文件,无法解析@Resource标签。之后调用其构造函数,就像你的例子里面,这个时候才去为配置文件赋值为spring*.xml。通过测试类对象执行测试方法的时候先执行before,这个时候测试类对象被用,因为线程安全,加载spring*.xml文件并正确扫描到了测试类,但是无法为测试类对象注入,因为这块内存的读取是线程安全的,所以oneinterface还是null。个人理解

  • 比天空更远
    2018-10-23 18:26:30

    问题解决了吗,mark一下