spring的全解,以及如何手撸ioc底层

spring的全解,以及如何手撸ioc底层

我们知道spring的广泛应用,是因为它是一个可以集成其他框架且自身也是一个重配置轻代码的框架,它的升级版springboot更是将其思想扩大,也就是从ssm变成了springboot+sm的结合,但是我们今天重点介绍spring的ioc

spring的两大重要思想之一 ioc

  1. IoC
    可是什么是IoC???
    我们知道ioc是控制反转,控制什么?反转什么呢?
    接下来就为大家介绍:
    我们很清楚spring是一个重配置轻代码的框架,既然它是一个集成框架,那么它的作用肯定是解耦合,同时它重配置,所以我们不难理解它一定要产生配置文件,那么这就不难理解resource文件的产生。可是resource文件到底包含什么呢,学过spring的都知道,resource文件由 .xml.properties 构成。
    我们知道spring提供解耦合的方式就是将需要调用的类放在配置文件中,再注入给需要用的地方,由此可见spring相当于一个容器,此时就会出现了DI这个词,即依赖注入。而properties文件则是存放固定数据,比如数据库资源等。
  2. 手撸IoC
    从上面我们知道IoC是控制反转,且IoC核心是DI后,那么我们就要开始了解底层,spring是如何做到这一步的。其实底层很简单,就是考验大家对基础知识的掌握程度和运用熟练度了。那么接下来就是我对于ioc底层的理解和如何做到手撸ioc
    一、spring开发步骤
    ①创建一个项目,加入spring依赖
    ②创建一个xml文件(相当于容器)
    ③创建demo类
    在这里插入图片描述
    ④此时我们编写一个测试类,然后调用自己定义的ApplicationContext接口,实现依赖注入,从而达到spring的功能
    在这里插入图片描述
    ⑤多态方式获取最后结果

二、这个时候我们已经知道步骤了,那么核心点在哪呢???就是我们进行依赖注入和ApplicationContext解析文件了,那么这个时候我们一步一步进行分析和编写代码
首先,我们知道通过ApplicationContext这个自定义api解析文件,因此我们需要创建一个文件夹,里面添加一个接口即ApplicationContext,然后写入接口方法,并创建出相应的实现类。
在这里插入图片描述
这个时候我们知道在ApplicationContext api接口里存在一个获getBean的方法,且返回类型应为Object
在这里插入图片描述
这个时候我们就要想要想获取配置文件里的bean标签,我们这个时候肯定要运用到反射,只有这个方式我们才能获取字节码,判断是否有bean标签,再判断bean标签是否存在我们需要的特定类的依赖注入。
这个时候我们需要进行考虑,在使用api的时候,就应该扫描xml文件,这里注意一下,最好是用构造的方法,减少解析次数,释放空间。
因此我们进行反射操作,然后判断是否存在bean标签,且里面存在地址值,然后进行forname的初始化,再将初始化的数据进行返回即可。
以上就是手撸ioc的方法,当然还存在其他的方法。如果需要源码,可以私我

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值