目录

1. 什么是IOC

2. IOC容器的底层原理

① dom4j解析xml文档;

② 工厂模式;

③ 采用反射设计模式创建对象

3.上边提到的三种技术如何实现IOC的呢?

第一步:xml配置文件,配置创建对象

第二步:创建工厂类

第三部:IOC(接口)


1. 什么是IOC

IOC -- Inverse of Control,控制反转,将对象的创建权力反转给Spring框架

在java当中一个类想要使用另一个类的方法,就必须在这个类当中创建这个类的对象,那么可能会出现如下情况, 比如A类当中创建着B对象,B类当中有C对象,C类当中有A对象,这个如果一个类出了问题,那么可能会导致这个框架出现问题。 Spring 将创建对象的权利给了IOC,在IOC当中创建了ABC三个对象,那么我们我们其他的类只需要调用集合, 大大的解决了程序耦合性的问题。

控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。

解决问题:使用IOC可以解决程序耦合性高的问题。

就相当于齿轮。

2. IOC容器的底层原理

① dom4j解析xml文档;

② 工厂模式;

③ 采用反射设计模式创建对象

我们需要讲一下工厂模式

在当前情况之下A类想要调用B类就必须自己在自己的内部新建B类的对象,这样的耦合度太高,那我们如何降低耦合度的呢?

创建一个工厂类,这样就能够使得A和B的耦合度降低到最小值

3.上边提到的三种技术如何实现IOC的呢?

第一步:xml配置文件,配置创建对象

<bean id="demo" class="com.qcby.service.Demo" />

第二步:创建工厂类

public class DemoFactory {public static Demo getDemo() throws Exception {//利用dom4j得到name所对应的value值String value="class路径";//通过反射创建对象Class clazz = Class.forName(value);//返回并创建demo对象return (Demo) clazz.newInstance();}
}

通过以上两步,我们基本上就可以得到我们所创建的对象。

第三步:IOC(接口)

通过以上两步,我们基本上就可以得到我们所创建的对象。

(1) BeanFactroy:加载配置文件的时候不会去创建对象,在使用对象的时候才会去创建对象

(2)ApplicationContext:BeanFactory接口的子接口,提供了更多更强大的功能,一般由开发人员进行使用

加载配置文件的时候会把对象创建

下面有用IOC完成创建对象的文章:

用SpringIOC完成helloworld_何妨徐行的博客-CSDN博客

什么是Spring IOC容器相关推荐

  1. 头条一面:Spring IOC容器中只存放单例Bean吗?

    最近,很多小伙伴出去面试,感觉自己面的不是很理想,回来后,不少小伙伴把面试题做了记录发给我,让我给大家解析下,然后发出来.当我看到这些面试题时,快速在脑海中构建起了整个知识体系,从基础到框架.从分布式 ...

  2. Spring点滴一:Spring Ioc 容器

    Spring 容器: Spring 容器是Spring框架的核心.Spring容器将创建Bean对象实例,把它们联系在一起,配置它们,并管理它们整个生命周期从创建到销毁.Spring 容器通过依赖注入 ...

  3. MyEclipse Spring 学习总结一 Spring IOC容器

    一.Spring IOC容器---- Spring AllicationContext容器 程序的结构如下: 1.首先在MyEclipse 创建创建Java Project 2.创建好后,添加spin ...

  4. Spring IOC 容器源码分析系列文章导读

    1. 简介 前一段时间,我学习了 Spring IOC 容器方面的源码,并写了数篇文章对此进行讲解.在写完 Spring IOC 容器源码分析系列文章中的最后一篇后,没敢懈怠,趁热打铁,花了3天时间阅 ...

  5. Spring IOC 容器源码分析 - 余下的初始化工作

    1. 简介 本篇文章是"Spring IOC 容器源码分析"系列文章的最后一篇文章,本篇文章所分析的对象是 initializeBean 方法,该方法用于对已完成属性填充的 bea ...

  6. Spring IOC 容器源码分析 - 填充属性到 bean 原始对象

    1. 简介 本篇文章,我们来一起了解一下 Spring 是如何将配置文件中的属性值填充到 bean 对象中的.我在前面几篇文章中介绍过 Spring 创建 bean 的流程,即 Spring 先通过反 ...

  7. Spring IOC 容器源码分析 - 循环依赖的解决办法

    1. 简介 本文,我们来看一下 Spring 是如何解决循环依赖问题的.在本篇文章中,我会首先向大家介绍一下什么是循环依赖.然后,进入源码分析阶段.为了更好的说明 Spring 解决循环依赖的办法,我 ...

  8. Spring IOC 容器源码分析 - 创建原始 bean 对象

    1. 简介 本篇文章是上一篇文章(创建单例 bean 的过程)的延续.在上一篇文章中,我们从战略层面上领略了doCreateBean方法的全过程.本篇文章,我们就从战术的层面上,详细分析doCreat ...

  9. Spring IOC 容器源码分析 - 创建单例 bean 的过程

    1. 简介 在上一篇文章中,我比较详细的分析了获取 bean 的方法,也就是getBean(String)的实现逻辑.对于已实例化好的单例 bean,getBean(String) 方法并不会再一次去 ...

  10. Spring IOC 容器源码分析 - 获取单例 bean

    1. 简介 为了写 Spring IOC 容器源码分析系列的文章,我特地写了一篇 Spring IOC 容器的导读文章.在导读一文中,我介绍了 Spring 的一些特性以及阅读 Spring 源码的一 ...

最新文章

  1. 使用Hexo和Github搭建博客站
  2. ati显卡驱动安装linux,恭喜自己 ati显卡驱动安装成功
  3. Linux的Nginx五:进程|过程
  4. android 动画动态消失,Android属性动画——没有什么动画是一个AnimSet不能解决的...
  5. 睡前必读 | 如何系统性地学习分布式系统?
  6. 安全地创建和存储密码
  7. 用户生命周期运营白皮书2.0
  8. 在Tomcat 与weblogic 中的 日志(log4j) 配置系列二(weblogic 应用程序使用log4j)
  9. html 5 video
  10. Android Studio 常用快捷键
  11. cmd中,执行java命令与javac命令的区别
  12. sql server2008 r2 密钥
  13. 国开大学计算机原理边学边练,国家开放大学计算机组成原理
  14. SAP固定资产的几个日期
  15. 超级简单图解, 轻松设置三级域名泛解析,免hosts设置访问web项目
  16. 计算机绘画社团活动教案,电脑绘画社团教案
  17. 响应“交通强国”战略,百度地图重构行业生态价值
  18. python绘制capm模型
  19. 华为机试od社招刷题攻略-目录
  20. crmeb多商户公测版发布

热门文章

  1. 基于计算机技术的媒体分析
  2. 查询字符串中连续出现的字符
  3. 【云原生之Docker实战】使用Docker部署StackEdit在线Markdown编辑器
  4. 请确定扫描仪是否正确连接--清华紫光扫描仪a688
  5. 要想成为JAVA高手必须先刻苦
  6. v-infinite-scroll无限滚动无法触发
  7. H3C的HPE ProLiant DL380 Gen9 ILO、RAID、OS安装配置
  8. 坚持科技引领,趣开门人脸识别门禁助力平安小区建设
  9. 前端实现右键自定义菜单
  10. pycharm无法消除出现的错误提示的可能解决方案