通过反射实现自动注入
反射我也不是太懂,也是后边打算准备看下spring ioc源码视频中提到了反射,我也是自己了解了一下然后通过反射自己实现了一个@Autowired自动注入的功能
首先创建出注解类并且在类上贴上应用注解
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201210221936891.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTg2ODk5OQ==,size_16,color_FFFFFF,t_70)
此时你会发现controller中的@Autowired注解即使不引入包也不会报错
我们可以通过创建Test看一下 注解比较详细我就不说了应该都可以看懂
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201210222543540.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTg2ODk5OQ==,size_16,color_FFFFFF,t_70)
通过反射 兰姆达表达式进行测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020121022271730.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTg2ODk5OQ==,size_16,color_FFFFFF,t_70)
以上两种测试最后一次打印语句中的controller.getService()是在controller中生成的get set 的Service方法(用来对比获取的是否是一个)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201210222917214.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTg2ODk5OQ==,size_16,color_FFFFFF,t_70)