Spring IOC原理及图解,通俗易懂

**

IOC/DI

**

a) IOC(Inversion of Control)
其思想是反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源;而应用了IOC之后,则是容器主动的将资源推送给它所管理的组件,组件需要做的仅是选择一种合适的方式(属性注入[set函数]、构造器注入…)来接受资源,这种行为成为查找的被动形式。

b) DI(Dependency Injection)
IOC的另一种表达方式,即组件以一些预先定义好的方式(如:setter方法)接受来自容器的资源注入,或者说,需要的资源依赖于别人的注入,相对于IOC而言,这种方式更直接。

c) IOC容器
IOC容器用来管理Bean的创建,装配等,同时管理所有这些Bean的生命周期,主要有两个:BeanFactory和ApplicationContext这两个接口。

1、BeanFactory:IOC容器的基本实现(不常用)
作用:

①.配置,创建以及管理Bean对象;
②.维护Bean之间的依赖关系;
③.负责Bean对象的生命周期

2、ApplicationContext(应用上下文)
提供了更多的高级特性,是BeanFactory的子接口(更加常用),在初始化上下文时就实例化所有单例的 Bean。
主要实现类:
ClassPathXmlApplicationContext——从类路径下的XML配置文件中加载上下文定义,把应用上下文定义文件作为类资源;
FileSystemXmlApplicationContext——读取文件系统下的XML配置文件并加载上下文定义;
XmlWebApplicationContext——读取Web应用下的XML配置文件并装在上下文定义;
通过现有应用上下文引用ApplicationContext,可以调用应用上下文的getBean()方法从Spring容器中获取Bean;

ApplicationContext作用:

①.读取Bean定义文件;
②.维护Bean之间的依赖关系;
③.国际化的支持;
④.资源访问;
⑤.事件传播;
⑥多配置文件加载

图解:
在这里插入图片描述

tomcat在启动的时候,直接会启动spring容器

spring ioc,spring容器,根据xml配置或者注解,去实例化你的一些bean对象,然后根据xml配置或者注解,
去对bean对象之间的引用关系,去进行依赖注入,某个bean依赖了另外一个bean。

底层的核心技术就是反射,他会通过反射的技术,直接根据你的类去自己构建对应的对象出来,用的就是反射技术。

spring ioc,让系统的类与类之间彻底的解耦合。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值