ApplicationContext 与 BeanFactory 区别(MS)

2023-11-04

1. 从继承关系上来说,BeanFactory  是 的父类。BeanFactory 只是提供了基础操作Bean的方法,ApplicationContext除了拥有父类的基础操作之外,还提供了自己独有的功能

2. 从性能方面上来说,ApplicationContext 一次性加载并初始化所有的Bean对象,但是BeanFactory 是需要哪个Bean才去加载哪个Bean

 ApplicationContext 是在创建的时候就会将所有的bean初始化第一次使用bean的时候启动比较慢,但是可能会造成资源浪费。BeanFactory不浪费任何资源,第一次加载bean比较

import beans.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @program: first-spring
 * @description:  通过ApplicationContext来获取对象
 * @author: DRY
 * @create: 2022-07-03 12:47
 **/
public class App {
    public static void main(String[] args) {
        //1. 先得到上下文对象
        ApplicationContext context =
                new ClassPathXmlApplicationContext("spring-config.xml");
        //2. 从spring上下文对象中获取bean
        User user = (User)context.getBean("user");
        //3. 使用对象(可以不使用)
        user.sayHi("张丹");

    }
}

 

import beans.User;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

/**
 * @program: first-spring
 * @description:  通过BeanFactory 来获取spring上下文对象
 * @author: DRY
 * @create: 2022-07-03 13:06
 **/
public class App2 {
    public static void main(String[] args) {
        //1.先得到BeanFactory来获取对象
        BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
        //2. 获取bean
        User user = (User) beanFactory.getBean("user");
        //3. 使用bean
        user.sayHi("李四");
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 表示将一个bean对象存储到spring中(可以有多个bean标签)-->
    <bean id="user" class="beans.User"></bean>
</beans>

 

 这两个user必须保持相同。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ApplicationContext 与 BeanFactory 区别(MS) 的相关文章

随机推荐

  • android studio升级指定版本,Android studio升级到3.3遇到的问题

    问题一 android native 的方法无法与cpp中方法关联 问题二 External Native Build Issues Error configuring 最近由于用opencv 做物体识别的demo 然后新建一个工程 含有C
  • 日志记录的几个重要地方

    在和经理聊天之前自己对日志的打印是比较随意的 没有太多的在意细节 在聊天之后发现这几个地方的日志是必须的 1 参数配置 一般项目启动时就会加载参数 日志级别为fatal 这是一定会打印的 让我们清楚的知晓参数加载的情况 2 数据进来的时候
  • springboot接口接收数组及多个参数的解决方案

    本例为个人经历 必然存在认知局限与不足 欢迎指正以及提供更好方法 若接口中需要接受数组 那么接口应该如何写呢 一般而言我们会想到 PostMapping xxxx public String test List list do sth 假设
  • 2013年计算机试题(四),2013年计算机一级考试试题(精简版):第四套

    无忧考网为大家收集整理了 2013年计算机一级考试试题 精简版 第四套 供大家参考 希望对大家有所帮助 第一部分 单选题 每小题1分 共30分 注意 打开你的考试文件夹中的EXCEL工作簿文件 单选题答题卡D XLS 将下列选择题的答案填入
  • pytorch:本地可视化服务器的tensorboard

    摘要 由于服务器上的系统是无界面系统 无法使用tensorboard进行可视化 但是可以在本地可视化服务器上的tensorboard tensorboard的安装以及命令行的使用已经在上一篇博客介绍过 这里不再阐述 不清楚的可以访问pyto
  • 基于SSM的疫苗接种平台

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端 Vue 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Maven项目 是
  • 计算方法--函数插值

    文章目录 插值多项式的存在唯一性定理 1 拉格朗日插值 Lagrange 线性插值 公式 分段线性插值函数的余项 抛物插值 公式 拉格朗日插值 插值余项定理 条件 公式 误差估计 2 Newton插值公式 差商 性质 Newton插值多项式
  • 华为OD机试 - 区间交集(Java)

    题目描述 给定一组闭区间 其中部分区间存在交集 任意两个给定区间的交集 称为公共区间 如 1 2 2 3 的公共区间为 2 2 3 5 3 6 的公共区间为 3 5 公共区间之间若存在交集 则需要合并 如 1 3 3 5 区间存在交集 3
  • 实验七-通过JDBC转移异构数据库中数据

    通过ODBC JDBC转移异构数据库中数据 实验环境 Windows 10操作系统 MySQL 8 0 SQL Server 2019 eclipse2021 09 实验内容与完成情况 实验目的 学会配置ODBC JDBC数据源 熟悉使用O
  • etcd配置参数

    成员相关配置项 name data dir wal dir snapshot count heartbeat interval election timeout listen peer urls listen client urls max
  • CSS——表格和表单

    第六章 CSS的表格和表单 文章目录 第六章 CSS的表格和表单 一 表格 二 表单 总结 一 表格 表格标签 标签 描述 lt table gt 表格标签 lt tr gt 表格行标签 lt td gt 普通单元格标签 lt th gt
  • win7计算机窗口左边被改了,win7电脑开始菜单变成经典模式?三种方法教你改回来...

    今天小编一开电脑 觉得怪怪的 怎么感觉电脑桌面不太一样了 仔细一看 原来是系统开始菜单变成经典模式了 很不习惯 那怎么恢复呢 今天小编就以win7系统为例 教大家怎么改回来 方法一 1 在桌面空白处单击鼠标右键 选择个性化 2 鼠标左键单击
  • 【app逆向】Frida-rpc 的常用python脚本

    1 1 Frida rpc常用脚本 在执行frida rpc时 会涉及到先关参数类型的处理和转换 例如 python程序调用时 传入参数 frida的JavaScript脚本如何获取参数 JavaScript的参数如何转换到 Java中所需
  • Endnote参考文献分享与导入

    Endnote参考文献分享与导入 转移 文章发给老师如何将参考文献一同发送 软件版本为X8 一 分享 首先找到Endnote library的位置 将两个文件 一个是后缀为enl的数据库文件和另一个是 data文件夹 一起复制到一个文件夹
  • opencv 表格识别之表格透视矫正(二)

    上一篇文章中给出了一种对表格进行矫正的方法 但是只能用于只有一个表格的情况 对于有多个表格的情况的矫正的方法 将在这篇文章中给出 单个表格矫正 链接 一 函数的介绍 1 Homography 函数返回映射关系H 3 3的矩阵 CV EXPO
  • 微信公众h5页面如何在web端调试

    由于微信公众页面在手机上不好调试 所以可以选择使用微信开发者工具 登录微信公众号 开发者工具 绑定微信账号 下载工具 安装 微信扫码 工具内输入公众号网页地址
  • 等保2.0建设

    现在的等保2 0建设都是要完整
  • Springboot整合mybatis(注解-基础篇)最通俗易懂的文章

    注解开发mybatis 开发流程 1 引入MyBatis依赖 maven下的springboot添加如下坐标即可 POM xml
  • 微信小程序——云函数部署问题

    摸索了一个下午才明白云函数是什么 效率真的有点低 不过好在还是弄出来了 云开发 即无需搭建服务器 将云端当做服务端 只需进行前端开发 小程序 云开发提供了三个基础能力 数据库 存储和云函数 数据库 json数据库 就理解为往里面存的是jso
  • ApplicationContext 与 BeanFactory 区别(MS)

    1 从继承关系上来说 BeanFactory 是 的父类 BeanFactory 只是提供了基础操作Bean的方法 ApplicationContext除了拥有父类的基础操作之外 还提供了自己独有的功能 2 从性能方面上来说 Applica