现在的位置: 首页 > 编程语言 > 正文

Spring的IOC容器是什么

2020年01月10日 编程语言 ⁄ 共 1312字 ⁄ 字号 评论关闭

  如果合作对象的引用或依赖关系的管理由具体对象来完成,会导致代码的高度耦合和可测试性的降低,这对复杂的面向对象系统的设计是非常不利的。

  在Spring中,IoC容器是实现依赖控制反转这个模式的载体,它可以在对象生成或者初始化时直接将数据注入到对象中,也可以通过将对象引用注入到对象数据域中的方式来注入对方法调用的依赖。这种依赖是可以递归的,对象被逐层注入。

  关于如何反转对依赖的控制,把控制权从具体业务对象中转交到平台或者框架中,是降低面向对象系统设计复杂性和提高面向对象系统可测试性的一个有效的解决方案。它促进IoC设计模式的发展,是IoC容器要解决的核心问题。

  具体依赖注入的主要实现方式:接口注入(Type1IoC)、setter注入(Type2IoC)、构造器注入(Type3IoC),在Spring的IoC设计中,setter注入和构造器注入是主要的注入方式,相对而言,使用Spring时setter注入是常见的注入方式,而且为了防止注入异常,SpringIoC容器还提供了对特定依赖的检查。

IoC容器系列的设计与实现:BeanFactory和ApplicationContext

  BeanFactory简单容器系列:这系列容器只实现了容器的最基本功能;

  ApplicationContext高级容器系列:ApplicationContext应用上下文,作为同期的高级形态存在。应用上下文在简单容器的基础上,增加了许多面向框架的特性,同时对应用环境做了许多适配。

  IoC容器是用来管理对象依赖关系的,对IoC容器来说,BeanDefinition就是对依赖反转模式中管理的对象依赖关系的数据抽象,也是容器实现依赖反转功能的核心数据结构,依赖反转功能都是围绕对这个BeanDefinition的处理来完成的。

IoC容器主要有两种设计路径:

  1.从接口BeanFactory到HierarchicalBeanFactory,再到ConfigurableBeanFactory,是一条主要的BeanFactory设计路径。在这条接口设计路径中,BeanFactory接口定义了基本的IoC容器规范。在这个接口定义中,包括了getBean()这样的IoC容器的基本方法(通过这个方法可以从容器中取得Bean)。

  2.第二条接口设计主线是,以ApplicationContext应用上下文接口为核心的接口设计,这里涉及的主要接口设计有,从BeanFactory到ListableBeanFactory,再到ApplicationContext,再到我们常用的WebApplicationContext或者ConfigurableApplicationContext接口。对于ApplicationContext接口,它通过继承MessageSource、ResourceLoader、ApplicationEventPublisher接口,在BeanFactory简单IoC容器的基础上添加了许多对高级容器的特性支持。

  结束语:以上就是关于Spring的IOC容器是什么的全部内容,更多内容请关注学步园。

抱歉!评论已关闭.