BeanFactory与ApplicationContext的区别

article/2025/9/24 13:38:50

BeanFactory与ApplicationContext的区别?

一、BeanFactory和ApplicationContext 接口及其子类图

在这里插入图片描述

二、概述

BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。

BeanFactory:

BeanFactory是Spring里面最底层的接口,是Ioc的核心,定义了Ioc的基本功能,包含了各种Bean的定义、加载、实例化,依赖注入和生命周期管理;

ApplicationContext

ApplicationContext接口作为BeanFactory的子类,除了提供BeanFactory所具有的功能外,还提供了更完整的框架功能:
①继承MessageSource,因此支持国际化
②资源文件访问,如URL和文件(ResourceLoader)
③载入多个(有继承关系)上下文(及同时加载多个配置文件),使得每一个上下文都专注于一个特定的层次
④提供在监听器中注册bean的事件;

三、二者区别

1.BeanFactroy采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化,这样,我们就不能发现一些存在的Spring的配置问题。而ApplicationContext则相反,它是在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误。 相对于基本的BeanFactory,ApplicationContext 唯一的不足是占用内存空间。当应用程序配置Bean较多时,程序启动较慢。

BeanFacotry延迟加载,如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常;而ApplicationContext则在初始化自身是检验,这样有利于检查所依赖属性是否注入;所以通常情况下我们选择使用 ApplicationContext。应用上下文则会在上下文启动后预载入所有的单实例Bean。通过预载入单实例bean ,确保当你需要的时候,你就不用等待,因为它们已经创建好了。

2.BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用,但两者之间的区别是:BeanFactory需要手动注册,而ApplicationContext则是自动注册。(Applicationcontext比 beanFactory 加入了一些更好使用的功能。而且 beanFactory 的许多功能需要通过编程实现而 Applicationcontext 可以通过配置实现。比如后处理 bean , Applicationcontext 直接配置在配置文件即可而 beanFactory 这要在代码中显示的写出来才可以被容器识别。 )

3.beanFactory主要是面对与 spring 框架的基础设施,面对 spring 自己。而 Applicationcontex 主要面对与 spring 使用的开发者。基本都会使用 Applicationcontex 并非 beanFactory 。

四、总结

因此,在实际开发中,通常都选择使用 ApplicationContext,而只有在系统资源较少时,才考虑使用 BeanFactory。


http://chatgpt.dhexx.cn/article/2H6nrTYQ.shtml

相关文章

watch跟computed的区别

大家好,我是大帅子,今天给大家讲一下watch跟computed的区别,下面我们直接开始吧 功能上:computed是计算属性,watch是监听一个值的变化,然后执行对应的回调。 是否调用缓存:computed中的函数所依赖的属性没有发生变化,…

动态lacp和静态lacp区别_lacp静态与动态区别

lacp静态与动态区别是: 1、用户权限不同。动态lacp汇聚是一种系统自动创建/删除的汇聚,不允许用户增加或删除动态lacp汇聚中的成员端口。静态lacp汇聚由用户手工配置,不允许系统自动添加或删除汇聚组中的端口。汇聚组中必须至少包含一个端口。…

null 和 undefined 的区别

一、概念 undefined 表示未定义,就是应该有值但是还没有赋值,连null的值都没有赋予 null 代表空值,空引用。 二、区别 1. null 和 undefined 虽然值的结果是相等的,但是其所代表的语义是完全不一样的(是相等的&am…

copy与deepcopy区别

copy与deepcopy区别 1、deepcopy: 将复制对象完全复制一边,并作为一个独立的新个体单元存在。即使改变被复制对象,deepcopy新个体也不会发生变化 2、copy: 不产生一个独立的对象,在原有数据上打一个标签&#xff0…

Cookie和session的区别

共同之处: cookie和session都是用来跟踪浏览器用户身份的会话方式。 区别: cookie: 是一段保存在客户端的小文本;能够用来将用户活动过程中的状态信息保存到客户端,服务器可以获得该信息以便进行处理,跟踪到用户的…

cookie和session区别

cookie 1.什么是cookie Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。 2.为什么要用cookie 由于http协议是一种无状态…

“chmod 777-R 文件名”什么意思?

“chmod 777-R 文件名”什么意思? 1. Linux下,每个文件可拥有3种权限类型2. 权限值组合3.操作文件、目录的用户4.十位权限表示5.chmod修改权限 - 数字6.chmod修改权限 - 字母7. 参考 1. Linux下,每个文件可拥有3种权限类型 读取权限&#xf…

cent7把/var目录下所有文件改777,导致ssh连接不上问题

开发的同事用多个账号,想多个账号共享/var的资料所以执行了chmod -R 777 /var,导致ssh连接不上,错误如下图所示。这时ping和telnet 22都是通的,网络是没有问题的。 chmod -R 777 /var是把/var下所有文件和目录都改成了777&#xf…

chmod -R 777使用.

chmod 修改文件和文件夹读写执行属性 1。把hh.c文件修改为可写可读可执行 chmod 777 hh.c 要修改某目录下所有的文件属性为可写可读可执行 chmod 777 *.* 把文件夹名称与后缀名用*来代替就可以了。 同理若是要修改所有htm文件的属性 chmod 777 *.htm 2。把目录 /tmp/sco修改…

chmod +x 与chmod 777的区别

chmod x 是将文件状态改为可执行,而chmod 777 是改变文件读写权限。 在linux中使用man命令查看chmod的大纲我们可以得出以下有用的信息: chmod [OPTION]… MODE[,MODE]… FILE… chmod [OPTION]… OCTAL-MODE FILE… chmod [OPTION]… --referenceRFILE…

# 777

777@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdo…

29. 777

Description再次挺进世界总决赛!他们也许会迟到,但是从不会缺席!”第三张通往世界赛的门票的时候,弹幕里瞬间沸腾了,全屏刷数不尽的 龙龙心血来潮,想知道一个区间里面所有的数字中,有多少个数字…

chmod 777 到底是啥 ???看完这个你就完全懂了!

0X00 前言 可能对于Linux新手而言,很不解的一件事就是: 有时在访问文件xxx时,总是出现权限问题,但是上网一查,大佬们直接一句话: chmod 777 xxx 完事! 相信你当时的心情是这样的: …

GIS应用技巧之泰森多边形分析

一、什么是泰森多边形? 泰森多边形是由荷兰气候学家A.H.Thiessen提出的一种根据离散分布 的气象站的降雨量来计算平均降雨量的方法,即将所有相邻气象站连成三角 形,作这些三角形各边的垂直平分线,于是每个气象站周围的若干垂直平…

划分问题之泰森多边形简介

泰森多边形 文章目录 泰森多边形 简介性质用途 简介 图1 泰森多边形又叫冯洛诺伊图(Voronoi diagram)。 性质 图1为泰森多边形,其中: 每个划分区域有且仅有有一个样点,也叫做控制点、居名点,离散点 一个划分区域内的任一点到构成…

arcgis 泰森多边形

荷兰气候学家AHThiessen提出了一种根据离散分布的气象站的降雨量来计算平均降雨量的方法,即将所有相邻气象站连成三角形,作这些三角形各边的垂直平分线,于是每个气象站周围的若干垂直平分线便围成一个多边形。用这个多边形内所包含的一个唯一…

【QGIS入门实战精品教程】9.1:QGIS构建泰森多边形(Thiessen Polygon)实例精解

泰森多边形是进行快速插值和分析地理实体影响区域的常用工具。例如,用离散点的性质描述多边形区域的性质,用离散点的数据计算泰森多边形区域的数据。泰森多边形可用于定性分析、统计分析和临近分析等。 参考教程: ArcGIS构建泰森多边形(Thiessen Polygon)实例精解 【Glob…

python 泰森多边形边界_简单泰森多边形的绘制

本期介绍泰森多边形,又叫沃罗诺伊图 (Voronoi diagram)。 混乱博物馆曾做过一期详实通俗的介绍:怎样画树叶 混乱博物馆_腾讯视频​v.qq.com 来源 : 看完了这个视频,我们对 Voronoi diagram 的算法有了大致的了解,下面来…

泰森多边形(Voronoi图)的matlab绘制

泰森多边形(Voronoi图)的matlab绘制 泰森多边形(Voronoi图)的matlab绘制1.泰森多边形的介绍2.算法实现2.0 matlab自带函数算法2.1 Delaunay三角算法2.3 泰森多边形算法 3泰森多边形的最终程序 泰森多边形(Voronoi图&am…

matlab实现泰森多边形

前言 原文: 《泰森多边形(Voronoi图)的matlab绘制》. 本文已经过原作者授权。如有错误,请批评指正。 泰森多边形介绍 泰森多边形是对空间平面的一种剖分,其特点是多边形内的任何位置离该多边形的样点(如居民点&…