谈谈面试题之BeanFactory和ApplicationContext有什么区别?
ApplicationContext是BeanFactory的子接口。
ApplicationContext提供了更完整的功能:
1、继承MessageSource,因此支持国际化。
2、统一的资源文件访问方式。
3、提供在监听器中注册Bean的事件。
4、同时加载多个配置文件。
5、载入多个(有继承关系)上下文,使得每个上下文都专注于一个特定的层次,比如应用的Web层。
- BeanFactory采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean),才对该Bean进行加载实例化。这样,我们就不能发现一些存在的Spring配置问题。如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常。
- ApplicationContext,它时在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误,这样有利于检查所依赖属性是否注入。ApplicationContext启动后预载入所有的单例Bean,通过预载入单例Bean,确保当你需要的时候,你就不用等待,因为它们已经创建好了。
- 相对于基本的BeanFactory,ApplicationContext唯一的不足是占用内存空间。当应用程序配置Bean较多时,程序启动较慢。
- BeanFactory通常以编程的方式被创建,ApplicationContext还能以声明的方式创建,如使用ContextLoader.
- BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryProcessor的使用,但两者之间的区别是:BeanFactory需要手动注册,而ApplicationContext则是自动注册。
谈谈面试题之BeanFactory和ApplicationContext有什么区别?相关推荐
- BeanFactory和ApplicationContext有什么区别?
BeanFactory: 是Spring里面最底层的接口,提供了最简单的容器的功能,只提供了实例化对象和拿对象的功能 ApplicationContext: 应用上下文,继承BeanFactory接口 ...
- BeanFactory 和ApplicationContext 有什么区别?
BeanFactory 可以理解为含有bean 集合的工厂类.BeanFactory 包含了种bean 的定义,以便在接收到客户端请求时将对应的bean 实例化. BeanFactory 还能在实例化 ...
- BeanFactory和ApplicationContext有什么区别
- Spring 的IOC容器系列的设计与实现:BeanFactory 和 ApplicationContext
在Spring IOC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本的功能,另一个是ApplicationContex ...
- Spring的三大核心接口——BeanFactory、ApplicationContext、WebApplicationContext
之前也在用这三个接口,但是对于他们的概念还是处于朦胧状态,同时,也不知道他们之间是一个什么关系,趁着现在有点时间总结一下吧,也需要对你有所帮助. 一.BeanFactory 基本认识: ...
- 【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext
在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能,另一个是ApplicationContext ...
- factorybean 声明_阿里面试题:BeanFactory与FactoryBean的区别
作者:至尊宝 来源:cnblogs.com/aspirant/p/9082858.html BeanFacotry是spring中比较原始的Factory.如XMLBeanFactory就是一种典型的 ...
- 还不知道BeanFactory和ApplicationContext的区别?
点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 转载自公众号:日拱一兵 关注我,回复口令获取可获取独家整理的学习资料: - 001:领取<Spr ...
- Spring系列之beanFactory与ApplicationContext
一.BeanFactory BeanFactory 是 Spring 的"心脏".它就是 Spring IoC 容器的真面目.Spring 使用 BeanFactory 来实例化. ...
最新文章
- python requests max retries_我可以为request.request设置max_retries吗?
- mysql中取出的时间日期多个.0
- linux下kvm设备配置,Linux下为KVM 配置桥接设备
- Linux产生随机数的几种常见方法
- 24款非常实用的CSS3工具终极收藏
- python向上取整_Python 之 向上取整、向下取整以及四舍五入函数
- iOS工程中的info.plist文件的完整研究
- 【Vue.js学习】生命周期及数据绑定
- vue 全家桶 - 前端工程化
- 浅谈数据结构之主席树(线段树进阶版)
- 【Flink】java.lang.NumberFormatException: Not a version: 9
- 2008年不错的图书
- 项目开发中自定义字段设计原则
- 手机中如何处理Excel格式转换PDF格式
- 详解Guitar Pro 7导入吉他谱的步骤
- 4G+5G多卡聚合(弱网通信)路由器视频传输最佳选择
- 使用Python编写一个QQ聊天机器人
- 应届生年薪 40w 在杭州可以过上什么样的生活?
- FlowJO X 流式补偿调整
- 元宇宙研讨会-空间设计与交互技术构造的叙事世界