第二章 ApplicationContext与BeanFactory

java——BeanFactory与ApplicationContext的关系 1:BeanFactory是Spring的早期接口,称为Spring的Bean工厂,ApplicationContext是后期更高级接口,称之为Spring 容器;2:ApplicationContext在BeanFactory基础上对功能进行了扩展,例如:监听功能、国际化、资源解析功能等。BeanFactory的API更偏向底层,ApplicationContext的API大多数是对这些底层API的封装; 阅读详情

2.1  ApplicationContext与BeanFactory获取Bean的区别

              org.springframework.beans及org.springframework.context包 是Spring IoC容器的基础。BeanFactory 提供的高级配置机制,使得管理各种对象成为可能。 ApplicationContext 是BeanFactory的扩展,比如更易 与Spring AOP集成、资源处理(国际化处理)、事件传递及各种不同应用层的context实现 (如针对web应用的WebApplicationContext)。

       org.springframework.beans.factory.BeanFactory 是Spring IoC容器的实际代表者,IoC容器负责容纳bean,并对bean进行管理。它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。ApplicationContext由BeanFactory接口派生而来,提供了BeanFactory所有的功能。为了以一种更向面向框架的方式工作以及对上下文进行分层和实现继承,context包还提供了以下的功能:

  • MessageSource, 提供国际化的消息访问
  • 资源访问,如URL和文件
  • 事件传播,实现了ApplicationListener接口的bean
  • 载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层

具体案例:

//从ApplicationContext中取bean

ApplicationContext ac=newClassPathXmlApplicationContext("com/hsp/ioc/beans.xml");

      当我们去实例化beans.xml,该文件中配置的bean被实例(该bean scope是 singleton)从bean中取出student

         

  BeanFactoryfactory = new XmlBeanFactory(
                                     newClassPathResource("com/hsp/ioc/beans.xml"));
                   factory.getBean("student");

       如果我们使用beanfactory去获取bean,当你只是实例化该容器,那么容器的bean不被实例化,只有当你去使用getBean某个bean时,才会实时的创建.


两者的区别:

1.如果使用ApplicationContext ,则配置的bean如果是 singlton不管你用不用,都被实例化.(好处就是可以预先加载,缺点就是耗内存)

2.如果是 BeanFactory ,则当你获取beanfacotry时候,配置的bean不会被马上实例化,当你使用的时候,才被实例(好处节约内存,缺点就是速度)

3.规定: 一般没有特殊要求,应当使用ApplicatioContext完成(90%)

2.2   Bean的作用域

作用域

描述

singleton

在每个Spring IoC容器中一个bean定义对应一个对象实例。

prototype

一个bean定义对应多个对象实例。

request

在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例, 它们依据某个bean定义创建而成。该作用域仅在基于web的Spring ApplicationContext情形下有效。

session

在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。

global session

在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于web的Spring ApplicationContext情形下有效。




如果使用ApplicatioContext,如果配置bean的scope属性为prototype,则使用的时候创建bean.

 

2.3  获取ApplicatioContext的三种方式

1.      ClassPathXmlApplicationContext:从类路径中加载。

<span style="font-size:14px;">ApplicationContext context =
  newClassPathXmlApplicationContext("
 foo.xml");</span>

2.      FileSystemXmlApplicationContext:从文件系统加载。

<span style="font-size:14px;">ApplicationContext context =
  newFileSystemXmlApplicationContext("
 c:\foo.xml");</span>

3.XmlWebApplicationContext:从web系统中加载。

     tomcat启动的时候创建。

Windows 11 + AMD 780M 运行 ComfyUI 完整指南:DirectML 实战方案 ComfyUI 是基于 PyTorch 的 Stable Diffusion 可视化工作流工具,其性能高度依赖 GPU 后端支持。在 Windows 平台,传统 CUDA 方案仅适配 NVIDIA 显卡,而 AMD 核显用户长期面临 ROCm 兼容性差、驱动链路断裂等系统级障碍。DirectML 作为微软原生机器学习 API,绕过 ROCm 生态断层,直接对接 DirectX 12 硬件抽象层,成为 RDNA 3 架构(如 Radeon 780M)在 Windows 11 上运行 AI 绘画的最优解。它提供 阅读详情

相关推荐

深入解析Sigma Delta调制器 —— 从电流采样到数字信号处理的完整链路

本文深入解析了Sigma Delta调制器的工作原理与应用。通过剖析过采样、噪声整形与负反馈核心机制,并结合AMC1306等实例,详细阐述了从电流采样到数字信号处理的完整链路。该技术凭借其高精度和高抗干扰能力,在ADC、电流测量及音频处理等领域发挥着关键作用。

ttt77的博客 643

BeanFactory和ApplicationContext区别及详解

​ Spring 框架带有两个 IOC 容器—— BeanFactory和ApplicationContext。BeanFactory是 IOC 容器的最基本版本,ApplicationContext扩展了BeanFactory的特性。​ Spring容器最基本的接口就是BeanFactory。BeanFactory负责配置、创建、管理Bean,它有一个子接口ApplicationContext,也被称为Spring上下文,容器同时还管理着Bean和Bean之间的依赖关系。​ spring Ioc容器

su1177的博客 1万+

Chatbox使用指南

Chatbox使用指南

weixin_65289420的博客 2万+

ApplicationContext与BeanFactory

ApplicationContext与BeanFactory spring是一个容器框架,把一个类交给spring容器管理,包括了创建对象、保存对象、对象的初始化和销毁。 IOC:Inverse of control - 控制反转;将对象创建的权利和依赖关系的维护【给字段赋值】交给Spring去管理。 简单来说:spring容器就是一个管家,专门管理对象(Spring中管理的对象称之为bean)。我们需要先创建一个”管家对象“,可以是ApplicationContext或者BeanFactory。 Bean

weixin_43678301的博客 1823

rk3588s-摄像头适配gc8034

若还打开失败,需要看下XML中文件配置是否与DTS配置信息一致,或者XML参数配置是否有异常;MIPI摄像头是有上电时序要求,具体时序要查看sensor芯片对应的datasheet进行修改,如果时序不满足,sensor无法正常,此时用i2ctool去查看设备可能无法扫面到设备,即是i2c设备找不到。RK3588或者RK3588S有路MIPI-PHY,驱动开发工程师需要根据对应的硬件原图进行配置,以下会讲解分别使用MIPI-DPHY和MIPI-D/CPHY如何在DTS配置mipi摄像头的回环链路。

Yxx8066的博客 2199

重复点击提交、产生多笔数据、保持数据只操作一次---->接口幂等性校验

幂等校验一、工作真实场景 + 常出现场景二、工作解决方案 + 百度解决方案 一、工作真实场景 + 常出现场景 真实场景:在一次工作中进行成品出库创建成品出库单时,手抖了一下,重复点击了两次确定(提交表单)。结果很神奇的发现居然产生了两笔一模一样的数据(流水号都一样),当时就很懵逼,稍作思考,想想应该是在同一时刻创建了两个出库单。感觉很有意思(因为之前没有遇到过,写代码的时候也没有考虑到这个问题的发生),后面换了一种方式复现场景:提交表单时多次点击Enter按钮,还是会产生多笔重复数据。 常见场景: 订单接

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 6万+

spring中的BeanFactory与ApplicationContext的作用和区别?

1.作用: 1)BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的生命周期。 BeanFactory是spring的原始接口,针对原始结构的实现类功能比较单一,BeanFactory接口实现的容器,特点是在每次获取对象时才会创建对象 2)ApplicationContext除了提供上述BeanFactory所能提供的功能之外,还提供了更完整的框架功能: a. 国际化支持 ...

花&败 1923

【LLC快速上手系列】LLC轻载时,死区时间怎么调才对?别再傻傻乱搞了!

死区时间,就是指。如果你死区设得好,就能让开通前 ( V_DS to 0 ),完美实现!

weixin_43199439的博客 1855

Spring——BeanFactory与ApplicationContext

简单的认识 BeanFactory 和 ApplicationContext

weixin_45700937的博客 1234

数据行小于列索引,内部模式表示可能存在问题

通过检查数据源的完整性和一致性,检查Debezium配置,检查列映射以及启用调试模式和日志记录,您应该能够解决这个错误。请注意,具体的解决方法可能因您的具体情况而异,因此您可能需要根据问题的根本原因进行适当的调整和修复。如果问题仍然存在,您可能需要进一步检查您的数据和配置,并根据具体情况进行调整和修复。在Debezium中,您可以使用列重命名和列映射来定义源和目标之间的列映射关系。通过检查日志,您可以查看详细的错误信息和堆栈跟踪,从而更好地理解问题的根本原因。首先,我们应该检查数据源的完整性和一致性。

XbtoMemory的博客 730

基于PPT的三维光路结构示意图绘制实例演示-技术细节

基于PPT的三维光路结构示意图绘制实例演示-技术细节

简单光学 7465

【spring】AnnotationConfigApplicationContext 类学习

是 Spring 框架中的一个类,用于创建基于注解的 Spring 应用上下文。它继承自类,并实现了接口。使用创建 Spring 应用上下文时,需要指定一个或多个配置类。,开发者可以直接在 Java 类中使用注解如@Bean等来声明和配置 Bean。属于 Spring 的 Java 配置支持模块,用于以纯 Java 注解的方式来替代 XML 配置文件来创建和管理 Spring 容器上下文。属于其中的一种。

一个写了10年bug的程序员日常笔记。 3807

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

第二章、Spring IoC(BeanFactory、ApplicationContext(BeanFactory子接口)、Spring依赖注入)

文章目录一、Spring IoC的基本概念一、概念及作用作用概念二、Spring IoC容器BeanFactory1、功能2、详解3、注意ApplicationContext1、通过ClassPathXmlApplicationContext创建2、通过 FileSystemXmlApplicationContext创建3、通过Web服务器实例化ApplicationContext容器三、Spri...

weixin_38367817的博客 879

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

BeanFactory与ApplicationContext的区别

BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。BeanFactory:ApplicationContext1.BeanFactroy采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化,这样,我们就不能发现一些存在的Spring的配置问题。而ApplicationContext则相反,它是在容

weixin_45606872的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

BeanFactory和ApplicationContext的区别

BeanFactory与ApplicationContext的关系BeanFactory是Spring的早期接口,称为Spring的Bean工厂,ApplicationContext是后期更高级接口,称之为Spring容器;监听功能、国际化功能等。的API更偏向底层,的API大多数是对这些底层API的封装;Bean创建的主要逻辑和功能都被封装在BeanFactory中。

怪咖@的博客 8121

Spring - BeanFactory与ApplicationContext介绍

BeanFactory是核心接口,项目运行过程中肯定有具体实现参与,这个具体实现就是DefaultListableBeanFactory,而ApplicationContext内部维护的Beanfactory的实现类也是它。之前也了解过Spring Bean,但已经忘记了,之后找了一些视频,但是对Spring Bean讲解的不是很全面,现在又重新找了一些视频,对Spring Bean进行一些整理。主要内部维护的功能是跟Bean产生相关的,是造Bean的。内部刨除了Bean工厂功能外,还有其他功能。

weixin_51351637的博客 1912

BeanFactory与ApplicationContext的功能

beanFactory:是ApplicationContext的父接口,是spring的核心容器,主要的ApplicationContext实现都需要它的功能。图中可知ApplicationContext是ConfigurableApplicationContext的父接口,而beanFactory是顶层的父接口,所以ApplicationContext的功能也比beanFactory的功能多。因为这方法是私有的,debug的话实例太多不好看,可以通过反射拿到该map集合,看看其中的单例。

hguhbh的博客 1035

漫谈ApplicationContext和BeanFactory的区别

这串代码就是SpringBoot的启动类,使用@SpringBootApplication修饰。其中这串代码会让Spring Boot自动扫描并加载所有带有特定注解的类,并自动配置应用程序所需的各种组件。这也就是Spring Boot应用程序的入口,就类似于我们平时写的main入口或者是多线程写的run方法的入口,都算是回调函数。

HarryQUQ的博客 1330

【Spring】BeanFactory与ApplicationContext——BeanFactory体系结构

在 Spring 框架中,BeanFactory 和 ApplicationContext 是管理 Bean 的两个核心组件。BeanFactory 提供了基本的 IoC 功能,而 ApplicationContext 则在此基础上扩展了更多的功能,如国际化、事件传播和 AOP 支持。理解这两个容器的区别和应用场景,可以帮助开发者更好地设计和构建 Spring 应用程序。对于大多数企业级应用,推荐使用 ApplicationContext,因为它提供了更丰富的功能和更好的性能。

thinking_chou的专栏 1100

解析 Spring 的 BeanFactory 与 ApplicationContext

Spring 支持容器的层级嵌套(如父容器与子容器),子容器可访问父容器中的 Bean,但父容器无法访问子容器中的 Bean。例如:

潜意识Java的博客 916

Spring~基础:ApplicationContext和BeanFactory的区别与联系

文章目录BeanFactoryApplicationContext两者区别与联系 BeanFactory BeanFactory是String中比较基础的一个容器,这个容器接口定义在spring.beans包下,其主要功能是给依赖注入(DI)提供支持。 在Spring中,有大量对BeanFactory接口的实现,其中,最常使用的是XmlBeanFactory,这个容器可以从一个XML文件中读取元数据,由这些元数据来生成一个被配置化的系统和应用。 一般BeanFactory都是应用在资源非常宝贵的移动设备或者

zxc的博客 1741

BeanFactory和ApplicationContext

BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。 (1)BeanFactory是Spring里面最底层的接口,是IoC的核心,定义了IoC的基本功能,包含了各种Bean的定义、加载、实例化,依赖注入和生命周期管理。ApplicationContext接口作为BeanFactory的子类,除了提供BeanFactory所具有的功能外,还提供了更完整的框架功能: (2)①BeanFactroy采用的是延迟加载形式来注入Bean的,只有在使用

shangliangren的博客 4688

Spring 中的 BeanFactory 和 ApplicationContext 详解

Spring中的BeanFactory是框架中的一个核心接口,作为Spring容器的基础设施,负责创建、配置和管理Bean实例,同时提供了对Bean生命周期的管理和控制。 ApplicationContext是Spring应用程序的核心,它不仅负责创建和管理Bean,还提供了多种企业级服务,如事件传播、国际化、资源加载等。是SpringIoC容器高级形态,提供了对Bean的全面管理以及对应用程序环境的支持。

青灯文案的博客 1963

ApplicationContext和BeanFactory

BeanFactory是核心接口,项目运行过程中肯定有具体实现参与,这个具体实现就是DefaultListableBeanFactory,而ApplicationContext内部维护的Beanfactory的实现类也是它。Spring 容器将会扫描这些包下的类,寻找那些标记了 @Component、@Configuration、@Service、@Repository、@Controller 等注解的类,并将它们自动注册为 Spring 容器管理的 Bean。方法手动注册配置类或基础包。

weixin_64387654的博客 1202

一文看懂BeanFactory 和 ApplicationContext

本文重点介绍了BeanFactory 和 ApplicationContext,以及两者的区别与联系。

weixin_46425661的博客 1181
上一篇: 第一章 Spring快速入门
下一篇: Bean的生命周期
xiaoding133
博客等级 码龄19年 415粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值