【热门文章解析】基于注解手写Spring的IOC(上)

前言

今日解读文章来自:



原文链接🔗

原文解读

控制反转容器不断有友友在创作,来看一下这一位怎么写的吧。

思路很清楚了,这里Map提前标注下,key是注解的自定义参数,value是实例对象。

比如这里,keyBigStarvaluenew BigStar()。并不是说这里是显式实例化出来的,而是后面通过反射实例化出来的。


这里也是写了两个运行时注解,类注解用来承载要序列化的对象和key,字段注解用来提供实例化对象时每个字段的参数。

到这里只是拿到了运行方法的路径,之后要通过这个路径拿到全部类。

从根路径开始,对于文件来判断是否以.class结尾,文件夹来说进入下一层递归。

这里拿掉class文件做类加载,加载后先创建实例化对象,加载后检查下是否存在上面定义的运行时类注解,存在则对属性按照字段注解赋值,最后放入容器。

这里如果没有注解可以不需要实例化对象,也就是蓝色的框框可以向后调整。

到这里,这个IOC容器就实现完成了。

后记

总结一哈,这里IOC容器实现了基本的注入和存取功能,但是对于复杂的场景如非字符串依赖,无法实现注入。对象依赖注入时需要还考虑循环依赖的情况。

专栏所有文章均取材自博客排行榜,并附加个人的解读。


感兴趣的老爷们点个👍,想看其他文章的解读可以评论区留言。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值