Spring中的两种容器类型:

分别是:BeanFactory和ApplicationContext

共同点
它们都是Spring中的两个接口,用来获取Spring容器中的bean

不同点:
1.对bean的加载方式不同
前者BeeanFactory是使用的懒加载的方式,只有在调用getBean()时才会进行实例化。
后者ApplicationContext是使用预加载的方式,即在应用启动后就实例化所有的bean。常用的API比如XmlBeanFactory

2.特性不同:
BeanFactory接口只提供了IOC/DI的支持,常用的API是XMLBeanFactory

ApplicationContext是整个Spring应用中的中央接口,翻看源码就会知道,它继承了BeanFactory接口,具备BeanFactory的所有特性,还有一些其他特性比如:AOP的功能,事件发布/响应(ApplicationEvent)等。常用的API比如ClassPathXmlApplication

3.应用场景不同:
BeanFactory适合系统资源(内存)较少的环境中使用延迟实例化,比如运行在移动应用中
ApplicationContext适合企业级的大型web应用,将耗时的内容在系统启动的时候就完成

详细例子参考:
https://www.cnblogs.com/FraserYu/p/11112122.html

延伸思考:
1.ApplicationEvent的概念是什么?如何实现?使用的设计模式是什么?与MQ的发布/订阅有什么区别?–自行查阅
2.如何实现ApplicationContext的延迟加载?
两种方式:
(1).bean元素配置lazy-init=true
(2)beans元素中配置default-lazy-init=true让这个beans中的所有bean延迟实例化

Spring中有哪几种容器类型?面试这么答就对了相关推荐

  1. PHP类有哪几种,PHP中有哪几种常用类型?

    [单选题]以下对决策工作与计划工作的关系表述不正确的是( ). [判断题]显微镜使用后应该注意,物镜旋转到两镜之间,提升镜筒,把玻片取下.关闭光源,拔下电源,盖上静电罩,收好观察玻片.( ) [多选题 ...

  2. Spring揭秘1:IOC容器、bean的生命周期

    1 依赖注入 在IoC模式中,被注入对象又是通过哪些方式来通知IoC Service Provider为其提供适当服务的呢?----依赖注入方式 构造方法注入 setter方法注入 接口注入 1.1 ...

  3. Spring(二)IOC容器的初始化流程

    文章目录 一.Spring 核心容器类 1.1 BeanFactory 1.2 ApplicationContext 1.3 BeanDefinition 二.IOC容器的初始化 2.1 基于Xml的 ...

  4. 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考

    数据结构简介 Python定义的类型(或对象)层次结构在概念上可以划分为四种类别:简单类型.容器类型.代码类型 和内部类型. 可以将 PyObject 类之下的所有 Python 类划分为 Pytho ...

  5. python有几种容器_Python中几种内置的容器(Containers)类型:列表、字典、集合和元组的比较和该注意的点...

    之所以称他们为容器类型是因为他们不像基本类型那样只有一种简单类型的数据,而是可以包含其他类型的数据,numpy的计算速度比原生Python快的一个很重要的原因就是numpy中的数组(类似于Python ...

  6. 面试官问:ZooKeeper 有几种节点类型?别回答 4 种啦

    本文作者:HelloGitHub-老荀 好久没更新 ZK 的文章了,我想死你们啦.之前发布的 HelloZooKeeper 系列文章完结后,项目收获了将近 600 个 star.这远远超过了我自己的预 ...

  7. Spring AOP的—绍和5种通知类型的使用(详解)

    Spring AOP介绍与使用 文章目录 Spring AOP介绍与使用 1.AOP的概念 AOP的核心概念及术语 AOP的通知类型(5种) AOP的应用场景 2.Spring AOP的配置(基于Ma ...

  8. 多个切点 boot spring_全网独家Spring/Cloud/MVC/Boot,脑图+面试+进阶,就问你服不服?...

    近期搜刮了一些Spring全家桶系列的思维脑图.经典面试题和进阶学习的PDF笔记(非常nice),Spring+SpringCloud+SpringMVC+SpringBoot,一个都没落下全都有!一 ...

  9. android javamail获取邮件太多太慢_结合 Spring 发送邮件的4种正确姿势,你知道几种?...

    Java程序猿阿谷:面试字节跳动三轮凉凉,内推4面终拿下抖音offer(Java后台研发)​zhuanlan.zhihu.com 一.前言 测试所使用的环境 测试使用的环境是企业主流的SSM 框架即 ...

最新文章

  1. 【C++】 64_C++中的异常处理 (上)
  2. vlan指的是什么?—Vecloud微云
  3. 【Java数据结构】链表的增、删、返回指定位置元素(添加泛型)
  4. java调用lingo_使用Lingo增强JMS
  5. 框架笔记:记录XLua的简单接入
  6. Odoo10教程 -- 主题教程
  7. Java Iterable类
  8. openwrt+php+not+found,openwrt路由翻车,等高手
  9. 问答 | 为什么两轮差速机器人转向运动是圆周运动
  10. react系列之isMounted is an Antipattern
  11. 什么情况下java会出现堆溢出_【Java面试题第三期】JVM中哪些地方会出现内存溢出?出现的原因是什么?...
  12. 5秒钟搭建一个简单版的restful资源服务器
  13. 前端基础语言HTML、CSS 和 JavaScript 学习指南
  14. 计算机论文3000字文献,计算机学术论文3000字计算机学术毕业论文范文模板.pdf
  15. 分享一个MentoHUST for Windows 锐捷认证使用方法,实现不用猎豹wifi第三方流氓软件破解校园网wifi共享限制。
  16. rem与px之间的换算
  17. 概论第7章_参数估计_点估计的评价标准_相合性_无偏性_有效性
  18. html5 自动矢量化,HTML5中地圖矢量化
  19. 221003工作日志
  20. 阿诺德给物体加描边_Arnold(C4DToA)阿诺德渲染教程(116):Arnold 如何抠透明通道?透明物体后期合成方案!...

热门文章

  1. Mysql 删除重复数据保留一条有效数据
  2. android——下拉选择框(自定义spinner)
  3. 微信小程序实现电商的购物车页面
  4. 计算机桌面锁定了没设密码怎么解锁,win7设置和取消锁屏密码详细教程 win7锁屏密码忘了怎么办...
  5. php面试中常被问到的问题--欢迎留言补充
  6. c语言打印直角三角形
  7. Android将apk转换成二维码提供给别人扫描并下载
  8. wincc显示系统时间_wincc系统日期时间获取
  9. SQL中字符截取、拼接 、转换常用方法
  10. Linux 退出状态码