BeanFactory 和 ApplicationContext 的区别

news/2025/3/17 16:55:06/文章来源:https://www.cnblogs.com/jmcui/p/18503590

这是 Spring Framework 对 ApplicationContext 的解释:

The org.springframework.context.ApplicationContext interface represents the Spring IoC container and is responsible for instantiating, configuring, and assembling the beans. 

ApplicationContext 代表 Spring 的 IOC 容器,负责实例化、配置和组装 bean。

Spring Framework 把 ApplicationContext 称为容器,其实不是太准确,真正的容器应该是 org.springframework.beans.factory.BeanFactory,不过 ApplicationContext 是 BeanFactory 的子接口,并提供 AutowireCapableBeanFactory 的引用,这样 ApplicationContext 就拥有了 Bean 读取和装载的能力,因此,一般也笼统的称 ApplicationContext 为容器

再回到区别上来,这是 Spring Framework 的描述:

In short, the BeanFactory provides the configuration framework and basic functionality, and the ApplicationContext adds more enterprise-specific functionality. 
public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
}

可以看到 ApplicationContext 还扩展了其它接口,提供了其它功能:

  • 通过 MessageSource 提供 i18n 国际化支持;
  • 通过 ResourceLoader 提供资源的加载,比如 class path 或系统资源;
  • 通过 ApplicationEventPublisher 对实现了 ApplicationListener 的 bean 进行事件通知;
  • 通过 HierarchicalBeanFactory 加载多个上下文;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/822169.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读数据工程之道:设计和构建健壮的数据系统20数据工程存储抽象

数据工程存储抽象1. 数据工程存储抽象 1.1. 数据工程存储抽象是数据组织和查询模式,位于数据工程生命周期的核心,建立在之前讨论的数据存储系统之上 1.2. 关键的考虑1.2.1. 目的和用例1.2.1.1. 必须首先确定存储数据的目的1.2.2. 更新模式1.2.2.1. 是否针对批量更新、流式插入…

linux 下 github ssh 无法连接

https://github.com/orgs/community/discussions/55269author : lukelmouse

Sharding-JDBC笔记02-Sharding-JDBC执行原理

一、基本概念 在了解Sharding-JDBC的执行原理前,需要了解以下概念: 逻辑表 水平拆分的数据表的总称。例:订单数据表根据主键尾数拆分为10张表,分别是 t_order_0 、 t_order_1 到t_order_9 ,他们的逻辑表名为 t_order 逻辑表 在分片的数据库中真实存在的物理表。即上个示例…

C中的open(), write(), close(), fopen()

open() 函数原型#include <fcntl.h> #include <unistd.h>int open(const char *pathname, int flags, mode_t mode);pathname:要打开的文件的路径。flags:打开文件的模式(如只读、只写等)。常用的标志包括:O_RDONLY:只读模式。 O_WRONLY:只写模式。 O_RDWR:…

C#数据结构与算法4-C# 简单排序方法

一 排序 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题。例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困难。同样,存储在计算机中的数据的次序,对于处理这些数据的算法的速度和简便性而言,也具有非常深远的意义。 二 基本概念…

C#数据结构与算法5-C# 快速排序

一 快速排序 快速排序由于排序效率综合来说你几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影…

C#数据结构与算法4-C# 快速排序

一 快速排序 快速排序由于排序效率综合来说你几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影…

C#数据结构与算法1-C# 线性表

一 什么是线性表 线性表是最简单、最基本、最常用的数据结构。线性表是线性结构的抽象(Abstract),线性结构的特点是结构中的数据元素之间存在一对一的线性关系。这种一对一的关系指的是数据元素之间的位置关系,即:( 1)除第一个位置的数据元素外,其它数据元素位置的前面都…

C#数据结构与算法2-C# 栈和队列

一 栈和队列 栈和队列是非常重要的两种数据结构,在软件设计中应用很多。栈和队列也是线性结构,线性表、栈和队列这三种数据结构的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的操作不受限制,而栈和队列的操作受到限制。栈的操作只能在表的一端进行,队列的插入…

C# 托盘通知

一 托盘通知 NotifyIcon托盘通知:程序可以在通知区创建一个通知图标。一般地,可以提示一个气泡通知,右键菜单支持。准备:需要一个图标(*.ico),用于显示在通知区。如果没有ico格式,可以将png图片转成ico。 演示:在项目中添加托盘通知。① 设置文本Text;② 选择图标Icon; …

学习强化学习有哪些工具

强化学习是一种动态的学习方法,目前有许多工具可以帮助研究者和开发者入门和深入学习。主要工具包括:1、OpenAI Gym:一个用于开发和比较强化学习算法的工具包;2、TensorFlow Agents:一个基于TensorFlow的强化学习库;3、Stable Baselines:一个高质量的强化学习库。其中,…