Spring的底层ioc实现原理

Spring的底层ioc实现原理

学了这么久的java,对IOC一直是只闻其名,不见其理,一直以为ioc是一种功能的实现,看了这么多博客,才理解IOC只是一种模式,一种思想,他没有固定的使用方法,spring的底层大量使用了ioc的思想.ioc是控制反转.简单说就是将原先需要new出来的对象,我先把它实例化,同时把它放到一个容器里,这样后面需要这个对象的时候,直接通过注入的方式拿到,为什么说是注入,其实应该说是从容器里面拿,只不过在spring里,用的更多的是注入, spring中使用ioc的模式,首先,在spring容器中有两个map集合,一个是用来存放bean的配置信息,另一个是用来存放bean的实例. 这里便是我说的两个map集合 我们在SpringBoot项目里启动主启动类后,系统根据@ConponentScan("")和@EnablleAutoConfiguration这两个注解去扫描项目中@ConponentScan("")路径下的对象以及@Controller,@Service…等有这类注解的对象,随后将这些对象的信息,像Scope,Lazy,Lifecyle等的信息存入到上面一个map集合里,key就是对象的名字.value则是这些属性信息. 生成实例图 再然后,根据两个上下文对象,
@AnnotationConfigApplicationContext
@ClassPathXmlApplicationContext
去生成bean的实例对象,并将它们存放到下面一个map中,key是对象名,value是对象实例,在图中也可以知道一个是通过注解生成实例,一个是通过xml配置信息生成实例.这里看到有人说的是有5个上下文对象,当然,这里用得比较多的就是我说的这两种. 这个时候,map里就有了对象的实例,我们需要的时候,就可以通过getBean("")方法去拿我们想要的实例对象.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值