Spring_lOC/DI总结

目录

1.Spring是什么

2.lOC/DI

实现方式

实现原理

lOC在代码中的应用理解

3.lOC容器的理解


1.Spring是什么

我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是一个开源框架,有着活跃而庞大的社区,这就是它之所以能长久不衰的原因。Spring 支持广泛的应用场景,它可以让 Java 企业级的应用程序开发起来更简单。

用一句简单的话来说:Spring是包含众多方法工具的loc容器!

2.lOC/DI

        IoC (Inversion of Control) 即控制反转,是面向对象设计的一种原则,主要是通过第三方容器,对Bean对象进行统一管理,和组织对象之间的依赖关系。获得依赖对象过程,由原本程序自己控制转变为loc容器主动注入(由程序自己控制--- >  容器控制),控制权发生了转变,所以称为控制反转。

        DI是实现lOC的方式之一,依赖注入,就是在lOC容器运行期间,动态的将某种依赖注入到对象中

控制反转和依赖注入就是通过不同的角度来描述同一件事情,就是指通过引入loc容器,利用依赖注入的方式,进行对象间的解耦。

实现方式

DI是lOC实现的方式之一,DI的实现方式有两种:属性注入和构造注入

实现原理

主要依赖反射和ASM字节码框架实现(字节码框架操作字节码更加的高效,功能更加强大)。

lOC在代码中的应用理解

例如,我们制造一辆汽车,首先有个车身,车身的制造少不了底盘,底盘又由轮胎还有其他的器件组成,所以就构成这种关系:

传统的开发就是所有的东西都是依赖最底层,大众的需求各不相同,所以加入轮胎改变之后,上层所有的代码都要改变。

那么在lOC的思想基础下去制造一辆汽车,改为注入传递的方式来实现,此时各个模块之间都是相互独立的,使用依赖注入的方式,如果要改变某个属性或者其他,只单独修改部分即可,不会涉及到全部代码。

所以当控制权发生反转之后,不再是上级对象创建并控制下级对象,而是把下级对象注入到上级,下级的控制权不再是上级,这样及时下级发生改变,也不会影响上级。

3.lOC容器的理解

spring容器主要是对lOC模式设计的实现,主要是用容器统一管理Bean对象和组织对象间的依赖关系。

创建容器主要使用的时ApplicaitonContext和BeanFactory这两个顶级接口来实现的!两者之间的关系为:     ApplicaitonContext是BeanFactory的子接口,因此ApplicaitonContext不仅继承了父类的所有功能,而且自己也实现了更多的功能。

两种顶级接口实现的区别:

  1. BeanFactory是最低层的容器接口,只提供了最基础的功能:依赖注入和实例化,并且使用懒加载的方式,这意味着bean对象只有在getBean调用他时才实例化。
  2. ApplicaitonContext(应用上下文),他是BeanFactory的子类,与BeanFactory的加载方式不同,他是预加载,所以每一个bean对象在ApplicaitonContext启动的时候就开始了实例化
  3. 除了基础功能,还添加了很多增强:
  • 整合了Bean的生命周期(管理了Bean对象的整个生命周期)
  • i18n国际化功能(MessageSource)
  • 载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层(可以有多个上下文,可以是独立的,也可以是有关系的)
  • 事件发布响应机制(ApplicationEventPublisher)
  • AOP:AOP 是 Aspect Oriented Programming(面向切面编程) 的简称,和OOP(面向对象编程)一样是一种编程思想,是对OOP的一种补充。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值