Spring之ApplicationContext快速入门

news2024/10/9 8:27:00

目录

一:概述

二:代码演示

三:BeanFactory与ApplicationContext的关系

四:BeanFactory的继承体系

五:ApplicationContext的继承体系


一:概述

                 ApplicationContext称为Spring容器, 内部封装了BeanFactory, 比BeanFactory功能更丰富更强大,使用ApplicationContext进行开发时, xml配置文件的名称习惯写成applicationContext.xml

二:代码演示

 //创建ApplicationContext,加载配置文件,实例化容器 
 ApplicationContext applicationContext= new ClassPathxmApplicationContext(“applicationContext.xml");
 //根据beanName获得容器中的Bean实例 
 UserService userService=(UserService)applicationContext.getBean("userService") ; 
 System.out.println(userService);

三:BeanFactory与ApplicationContext的关系

  1. BeanFactory是Spring的早期接口, 称为Spring的Bean工厂, ApplicationContext是后期更高级接口,称之为 Spring容器;

  2. ApplicationContext在BeanFactory基础上对功能进行了扩展, 例如:监听功能、国际化功能等。BeanFactory的 API更偏向底层, ApplicationContext的API大多数是对这些底层API的封装;

  3. Bean创建的主要逻辑和功能都被封装在BeanFactory中, ApplicationContext不仅继承了BeanFactory, 而且 ApplicationContext内部还维护着BeanFactory的引用, 所以,ApplicationContext与BeanFactory既有继承关系, 又 有融合关系。

  4. Bean的初始化时机不同, 原始BeanFactory是在首次调用getBean时才进行行Bean的创建, 而ApplicationContext则是配置文件加载,容器一创建就将Bean都实例化并初始化好。

四:BeanFactory的继承体系

                 BeanFactory是核心接口, 项目运行过程中肯定有具体实现参与, 这个具体实现就是DefaultListableBeanFactory 而ApplicationContext内部维护的Beanfactory的实现类也是它

五:ApplicationContext的继承体系

只在Spring基础环境下, 常用的三个ApplicationContext作用如下:

实现类功能描述
ClassPathXmlApplicationContext加载类路径下的xml配置的ApplicationContext
FileSystemXmlApplicationContext加载磁盘路径下的xml配置的ApplicationContext
AnnotationConfigApplicationContext加载注解配置类的ApplicationContext

在Spring的web环境下, 常用的两个ApplicationContext作用如下:

实现类功能描述
XmlWebApplicationContextweb环境下, 加载类路径下的xml配置的ApplicationContext
AnnotationConfigWebApplicationContextweb环境下, 加载磁盘路径下的xml配置的ApplicationContext

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试官:能用JavaScript手写一个bind函数吗

经常会看到网上各种手写bind的教程,下面是我在自己实现手写bind的过程中遇到的问题与思考。如果对于如何实现一个手写bind还有疑惑的话,那么可以先看看上面两篇文章。 手写bind vs 原生bind 我们先使用一个典型的手写bind的例子,代码如下&a…

PHP命令执行的函数

在做面试题的时候发现,自己对PHP命令执行的函数的了解并不是很全面,就想这去学习一下。我也在网上找到了许多的资料,在这里我就相当于一个总结吧。 system(); System()函数的主要功能是在系统权限允许的情况是执行系统命令,windows系统和Lin…

【服务器数据恢复】EMC存储Zfs文件系统下raid5数据恢复案例

服务器存储数据恢复环境: 某公司一台EMC存储,12块硬盘组成raid5,2块热备盘; Zfs文件系统。 服务器存储故障: 硬盘故障导致存储崩溃。 服务器存储数据恢复过程: 1、对故障存储所有硬盘进行物理故障检测&…

详细软件著作权的申请

一,申请注册账号并进行实名认证 在中国版权保护中心官网注册账号。 我是自己申请的所以选择的个人,这里根据实际情况进行选择后注册。 注册后进行实名认证(3-7个工作日人工会进行审核,所以每个著作权人都要提前注册并进行实名认证…

论文投稿指南——中文核心期刊推荐(地球物理学)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

【电商】电商后台---商品上架前的最后准备

电商后台相关模块进行维护后,离商品上架越来越近。 在供应商、合同、商品、价税等都维护完成后,采购部创建采购单,离商品可以上架销售越来越近了。 本篇再接着梳理一下商品销售前的最后准备工作(没考虑促销)&#xff…

P1111 修复公路

题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。 题目描述 给出A地区的村庄数NN,和公路数MM,公路是双向的。并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修完这条公路。问…

Python-123练习-04简单分支

文章目录1. 判断闰年2. 今年多少天3. 今天是第几天4. 判断奇偶数5. 计算整数 n 的阶乘6. 判断是否直角三角形7. 判断三角形并计算面积8. 出租车计费9. 一元二次方程求根10. 个税计算器11. 分期付款计算器12. 字符大小写转换1. 判断闰年 描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪…

学习HTTP协议,这一篇就够啦

HTTP协议一、什么是HTTP1.1 应用层协议1.2 HTTP1.3 HTTP协议的工作过程二、HTTP协议格式2.1 Fiddler抓包工具2.2 协议格式三、HTTP请求 (Request)3.1 认识 "方法" (method)3.1.1 GET 方法3.1.2 POST 方法3.1.3 GET和POST比较3.1.4 其他方法3.2 认识URL3.2.1 URL基本格…

Elasticsearch:使用 Node.js 将实时数据提取到 Elasticsearch 中(一)

Elasticsearch 是一个强大的 RESTful 搜索和分析引擎,能够处理越来越多的用例。 它将集中存储你的数据,以实现闪电般的快速搜索、微调相关性以及可轻松扩展的强大分析。 关于如何使用 Elastic Stack(又名 ELK 堆栈)将数据摄取到 E…

【C++编程调试秘籍】| 总结归纳要点(上)

文章目录一、编译器是捕捉缺陷的最好场合1 如何使用编译器捕捉缺陷二、在运行时遇见错误该如何处理1 该输出哪些错误信息2 执行安全检查则会减低程序效率,该如何处理呢3 当运行时遇到错误时,该如何处理四、索引越界1 动态数组2 静态数组3 多维数组5 指针…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的深度学习模型

目录给我推荐20个比较流行的nlp模型给我推荐20个比较流行的计算机视觉模型给我推荐20个比较流行的图像分类模型给我推荐20个比较流行的人脸识别模型给我推荐20个比较流行的实体识别模型给我推荐20个比较流行的语言识别模型给我推荐20个比较流行的激光雷达3D点云模型给我推荐20个…

计算机网络的一些常识

序 小白,啥也不会,所以要学习常识 快速总览 这个视频按照数据链路层——网络层——传输层——应用层的顺序,自下向上介绍的。虽然只有30分钟,但是挺全的,密度挺高的,而且小白友好。 计算机网络 Compute…

python学习|第一天

文章目录1.输出函数print2.浮点数输出3.数据类型转换4.运算符优先级5.列表对象list1.输出函数print #输出数字,直接输出 print(2023) print(2023.1)#输出字符串,要加单引号或者双引号(实际效果都是一样的),输出后自动换行 print(hello 2023)…

华为CE系列和S系列交换机堆叠配置及mad检测

CE系列交换机堆叠配置: 第一台交换机配置: system-view immediately #不用每次都输入 commit提交了 sysname sw1 stack stack member 1 priority 105 stack member 1 domain 10 quit inter stack-port 1/1 port member-group inter 10GE 1/0/1 dis st…

使用Helm部署Wikijs

使用 Helm 部署 Wiki.js 📚️ 参考文档: Wiki.js 官方文档 - 安装 - Kubernetes Wiki.js 使用 Helm 安装 Wiki.js 官方文档 - 安装 - 侧加载 官方教程 Kubernetes 开始使用 Helm Chart 在 Kubernetes 上安装 先决条件 Kubernetes 集群HelmPostgreSQL 数据库 ❗…

实习------数据库进阶

B树索引 什么是索引? MySQL官方对索引的定义为:索引就是用于实现数据的快速检索,由数据表中的一列或多列组合而成,索引实质上是一张描述索引列的列值与原表中记录行之间一 一对应关系的有序表。索引的实现通常使用B树及其变种B树…

2022年终回顾与总结:螃蟹走路-冲,撞

工作赚钱&#xff0c;养家糊口 << 2022年对地球上的人类来说&#xff0c;肯定是刻骨铭心的纪元。对于微小的个人而言&#xff0c;感受是真真切切的。固然全球疫情危害了劳苦大众&#xff0c;但家庭给我的触动却是直接和深刻的。 这一年的轨迹被6月的一刀切成两片。上半年…

深度学习——序列模型(笔记)

1.序列数据&#xff1a; ①现实生活中有很多数据是有时序结构&#xff0c;比如电影的评分随时间的变化而变化。 ②统计学中&#xff0c;超出已知观测范围进行预测是外推法&#xff0c;在现有的观测值之间进行估计是内插法 2.统计工具&#xff1a;处理序列数据选用统计工具和新…

第一章:Mybatis与微服务注册

目录 一、SpringBoot整合MybatisPlus 创建自动生成代码子模块 创建商品服务子模块 二、SpringBoot整合Freeamarker 三、SpringBoot整合微服务&gateway&nginx 整合微服务之商品服务zmall-product 创建并配置网关gateway服务 安装配置SwitchHosts 安装配置Windo…