一.概述

  在上一节之中,我们说到了IOC容器,并且说到了BeanFactory.

  现在我们来看一下BeanFactory的定义.

我们可以看到BeanFactory定义的方法,核心的方法就是getBean()方法.

也就是说,spring封装了创建Bean的全部过程,用户只需要getBean()就可以了.

那么,之前我们也说到了spring通过配置信息知道用户需要创建什么样的Bean,那么我们后面的一个核心就是学会配置.


二 .ApplicationContext

  Beanfactory实际上定义了IOC容器的基本形式,对于程序员来说,一般情况下是不会使用BeanFactory这样底层的容器的.

  spring为我们提供了ApplicationContext,含义是应用上下文.

    上下文在编程中一般的含义就是包含当前运行信息的环境.因此,我们一般也将ApplicaitonContext视为IOC容器.

public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,MessageSource, ApplicationEventPublisher, ResourcePatternResolver {

上面是ApplicationContext的定义,我们看到其实际上继承了BeanFactory,同时还继承了其它的接口.

  如 MessageSource,ApplicationEventPublisher等接口,也就是说ApplicaitonContext具有了国际化和事件的能力,这些都是后面我们需要说的.

做为程序员,我们经常使用的都是该接口的子类:

如:

ClassPathXmlApplicationContext  //从类路径下加载配置信息FileSystemXmlApplicationContext //从文件系统加载配置信息AnnotationConfigApplicationContext // 注解式环境

我们看到,子类只是获取配置信息的方式不同,同时还提供了环境下一些特殊行为.


三 .BeanFactory和ApplicaitonContext

  这是一个老生常谈的问题,首先

  [1]BeanFacoty是IOC的顶层接口,定义了IOC容器的一般行为.

  [2]ApplicationContext继承了BeanFactory,同时继承了其它的接口,如时间,国际化等接口,也就是说拥有的能力比BeanFactory更强.

  [3]BeanFactory是spring底层使用的,ApplicaitonContext才是程序员应该使用的接口.

  [4]加载时机的问题,ApplicaitonContext会初始化所有的单例Bean,这个问题我们后面会重点说明.

转载于:https://www.cnblogs.com/trekxu/p/9090674.html

004 IOC---IOC容器相关推荐

  1. 使用 spring 的 IOC 解决程序耦合——获取spring的Ioc核心容器,并根据id获取对象、核心容器的两个接口(ApplicationContext、BeanFactory)引发出的问题

    IOC概念和spring中的IOC 明确 ioc 的作用: 削减计算机程序的耦合(解除我们代码中的依赖关系). 使用 spring 的 IOC 解决程序耦合 获取spring的Ioc核心容器,并根据i ...

  2. Laravel开发:Laravel核心——Ioc服务容器源码解析(服务器绑定)

    服务容器的绑定 bind 绑定 bind 绑定是服务容器最常用的绑定方式,在 上一篇文章中我们讨论过,bind 的绑定有三种: 绑定自身 绑定闭包 绑定接口 今天,我们这篇文章主要从源码上讲解 Ioc ...

  3. Spring零基础入门到精通 --- IOC基础容器

    一.IOC基础容器 1.1.传统Javaweb开发的困惑 1.1.1.传统Javaweb开发代码分析-用户模块 1.1.2.传统Javaweb开发困惑及解决方案 困惑一:层与层之间紧密耦合在了一起,接 ...

  4. 全局容器的创建和使用---单件模式和IOC的容器的应用

    在下面的应用中,在程序初始化时,对IOC容器进行装载和注入. 然后在程序的业务层中,直接从全局IOC容易中进行取用. 代码如下 //主要是应用了单件模式 public class global     ...

  5. 一起写框架-Ioc内核容器的实现-对象的调用-属性注入容器的对象(十)

    实现功能 需求:在类的成员属性使用@Autowirde注解注入容器中的对象. 实现思路 要实现这个功能.我们首先要思考一个问题:类与类的关系是在调用的建立的,还是说在创建对象的时候就就将建立了? -- ...

  6. php ico容器,Laravel 核心——IoC 服务容器

    服务容器 Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具. 在理解这句话之前,我们需要先了解一下服务容器的来龙去脉: laravel神奇的服务容器.这篇博客告诉我们,服务容器就是 ...

  7. 什么是IOC,IOC的优缺点及IOC的应用

    更多免费教学文章请关注这里 IOC,即控制反转(Inversion of Control,英文缩写为IoC),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核 ...

  8. Castle IOC容器内幕故事(上)

    摘要:在快速入门指南篇中,我们对于Castle IOC容器的使用已经有了一个直观的认识.本文将在这基础上进一步对Castle IOC容器的结构及其注册组件的过程做一个深入的分析,让我们开始Castle ...

  9. Castle IOC容器快速入门

    摘要:IOC模式是近年来非常流行的一种模式,相信大家都不陌生了,如果你还不是很熟悉的话,可以看看Martin Fowler大师的文章http://martinfowler.com/articles/i ...

  10. IoC容器Autofac(3) - 理解Autofac原理,我实现的部分Autofac功能(附源码)

    上篇文章中,举了一个Autofac的简单例子,园友eflay反应: "虽然对autofac架构原理还是完全不懂,不过基本是明白ioc的用途了,会从已注册的类中找出符合接口的类来调用构造函数进 ...

最新文章

  1. JAVA 继承内存模型_Java内存模型
  2. CVPR官网:仍将进行线下会议,网友:您老真在乎办会费
  3. sudo 命令表示 Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 使用权限:在 /etc/sudoers 中有出现的使用
  4. python字典生成式_【IT专家】Python 简化for循环:列表,集合与字典生成式
  5. JavaScript实现combinationSum组合和算法(附完整源码)
  6. es6 --- Promise.all等待多个异步任务执行
  7. 服务器生成文件怎么配置路径,npm run build生成的文件如何部署到服务器上
  8. 计算机网络学习笔记(一)——分层模型、协议、服务、连接模式、标准化组织
  9. CCProgressTimer进度条效果
  10. VS 安装部署项目自解压程序解压后按顺序执行多个程序
  11. 25.软件磁盘阵列(Software RAID)
  12. Storm原理及单机安装指南
  13. hp 服务器 无线网卡,换个网卡再战!—记惠普4431s笔记本更换无线网卡体验
  14. 颜色RGB 与 html 代码 对照表
  15. 2014年腾讯实习生招聘最后一题
  16. 【Unity3D游戏教程】记忆翻牌游戏
  17. 连接器E-mark认证要准备什么资料?
  18. 区块链超级账本Hyperledger Fabric架构说明
  19. CF597 (Div. 2)题解
  20. TCP三次握手和四次挥手抓包详解

热门文章

  1. python目录及文件_零基础小白必看:python基本操作-文件、目录及路径
  2. android密码dakay,安卓中按钮点击事件onClick的两种实现方式
  3. c++求平均值_云顶之弈S4:六射手娱乐吃鸡!人均刮痧王,每个人都是主C
  4. java svnkit_java svnkit实现svn提交,更新等操作
  5. javascript boolean/布尔表达式
  6. 前端框架:layui
  7. python mount回调函数_让Python脚本暂停执行的几种方法(小结)
  8. elementui 搭建布局页面路由_【项目实践】使用Vue.js和ElementUI快速实现后台管理系统的界面布局...
  9. 武鸣高中2021高考成绩查询,2019年广西两大重点高中成绩大比拼
  10. n阶换方c语言程序,求单偶阶与双偶阶幻方编程思想及其算法!