004 IOC---IOC容器
一.概述
在上一节之中,我们说到了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容器相关推荐
- 使用 spring 的 IOC 解决程序耦合——获取spring的Ioc核心容器,并根据id获取对象、核心容器的两个接口(ApplicationContext、BeanFactory)引发出的问题
IOC概念和spring中的IOC 明确 ioc 的作用: 削减计算机程序的耦合(解除我们代码中的依赖关系). 使用 spring 的 IOC 解决程序耦合 获取spring的Ioc核心容器,并根据i ...
- Laravel开发:Laravel核心——Ioc服务容器源码解析(服务器绑定)
服务容器的绑定 bind 绑定 bind 绑定是服务容器最常用的绑定方式,在 上一篇文章中我们讨论过,bind 的绑定有三种: 绑定自身 绑定闭包 绑定接口 今天,我们这篇文章主要从源码上讲解 Ioc ...
- Spring零基础入门到精通 --- IOC基础容器
一.IOC基础容器 1.1.传统Javaweb开发的困惑 1.1.1.传统Javaweb开发代码分析-用户模块 1.1.2.传统Javaweb开发困惑及解决方案 困惑一:层与层之间紧密耦合在了一起,接 ...
- 全局容器的创建和使用---单件模式和IOC的容器的应用
在下面的应用中,在程序初始化时,对IOC容器进行装载和注入. 然后在程序的业务层中,直接从全局IOC容易中进行取用. 代码如下 //主要是应用了单件模式 public class global ...
- 一起写框架-Ioc内核容器的实现-对象的调用-属性注入容器的对象(十)
实现功能 需求:在类的成员属性使用@Autowirde注解注入容器中的对象. 实现思路 要实现这个功能.我们首先要思考一个问题:类与类的关系是在调用的建立的,还是说在创建对象的时候就就将建立了? -- ...
- php ico容器,Laravel 核心——IoC 服务容器
服务容器 Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具. 在理解这句话之前,我们需要先了解一下服务容器的来龙去脉: laravel神奇的服务容器.这篇博客告诉我们,服务容器就是 ...
- 什么是IOC,IOC的优缺点及IOC的应用
更多免费教学文章请关注这里 IOC,即控制反转(Inversion of Control,英文缩写为IoC),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核 ...
- Castle IOC容器内幕故事(上)
摘要:在快速入门指南篇中,我们对于Castle IOC容器的使用已经有了一个直观的认识.本文将在这基础上进一步对Castle IOC容器的结构及其注册组件的过程做一个深入的分析,让我们开始Castle ...
- Castle IOC容器快速入门
摘要:IOC模式是近年来非常流行的一种模式,相信大家都不陌生了,如果你还不是很熟悉的话,可以看看Martin Fowler大师的文章http://martinfowler.com/articles/i ...
- IoC容器Autofac(3) - 理解Autofac原理,我实现的部分Autofac功能(附源码)
上篇文章中,举了一个Autofac的简单例子,园友eflay反应: "虽然对autofac架构原理还是完全不懂,不过基本是明白ioc的用途了,会从已注册的类中找出符合接口的类来调用构造函数进 ...
最新文章
- JAVA 继承内存模型_Java内存模型
- CVPR官网:仍将进行线下会议,网友:您老真在乎办会费
- sudo 命令表示 Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 使用权限:在 /etc/sudoers 中有出现的使用
- python字典生成式_【IT专家】Python 简化for循环:列表,集合与字典生成式
- JavaScript实现combinationSum组合和算法(附完整源码)
- es6 --- Promise.all等待多个异步任务执行
- 服务器生成文件怎么配置路径,npm run build生成的文件如何部署到服务器上
- 计算机网络学习笔记(一)——分层模型、协议、服务、连接模式、标准化组织
- CCProgressTimer进度条效果
- VS 安装部署项目自解压程序解压后按顺序执行多个程序
- 25.软件磁盘阵列(Software RAID)
- Storm原理及单机安装指南
- hp 服务器 无线网卡,换个网卡再战!—记惠普4431s笔记本更换无线网卡体验
- 颜色RGB 与 html 代码 对照表
- 2014年腾讯实习生招聘最后一题
- 【Unity3D游戏教程】记忆翻牌游戏
- 连接器E-mark认证要准备什么资料?
- 区块链超级账本Hyperledger Fabric架构说明
- CF597 (Div. 2)题解
- TCP三次握手和四次挥手抓包详解
热门文章
- python目录及文件_零基础小白必看:python基本操作-文件、目录及路径
- android密码dakay,安卓中按钮点击事件onClick的两种实现方式
- c++求平均值_云顶之弈S4:六射手娱乐吃鸡!人均刮痧王,每个人都是主C
- java svnkit_java svnkit实现svn提交,更新等操作
- javascript boolean/布尔表达式
- 前端框架:layui
- python mount回调函数_让Python脚本暂停执行的几种方法(小结)
- elementui 搭建布局页面路由_【项目实践】使用Vue.js和ElementUI快速实现后台管理系统的界面布局...
- 武鸣高中2021高考成绩查询,2019年广西两大重点高中成绩大比拼
- n阶换方c语言程序,求单偶阶与双偶阶幻方编程思想及其算法!