Spring---对象的存储和读取

文章目录

  • Spring对象的存储
    • 创建Bean对象
    • 将Bean对象存储到spring中
      • 添加配置文件
      • 存储Bean对象
  • Spring对象的读取
    • 得到Spring上下文对象
    • 从Spring中取出Bean对象
    • 使用Bean对象

Spring对象的存储

创建Bean对象

Bean对象其实就是一个普通的Java对象。我们按照创建Java对象的方式来创建一个即可:

public class User {
    public String sayHi(){
        return "hi";
    }
}

将Bean对象存储到spring中

添加配置文件

在这里插入图片描述
在这里插入图片描述

存储Bean对象

在这里插入图片描述

Spring对象的读取

得到Spring上下文对象

因为在 Spring 中,我们把对象都交给 Spring 处理了,所以要从 Spring 中获取对象时就需要得到 Spring 上下文对象来获取,一共有两种方式

//方式一:ApplicationContext   ""里的内容要和我们配置的xml的名称对应
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");

//方式二:BeanFactory   ""里的内容也要和我们配置的xml的名称对应
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

ApplicationContext vs BeanFactory:

  1. 从继承关系和功能方面来说,Spring 容器有两个顶级的接口:ApplicationContext 和 BeanFactory。其中 BeanFactory 提供了基础的访问容器的能力;而 ApplicationContext 属于BeanFactory
    的子类,它除了继承了 BeanFactory
    的所有功能外还拥有一些独有的特性,比如:添加了对国际化支持、资源访问支持及事件传播等方面的支持。
  2. 从性能方面来说,Application 是一次性加载并初始化所有的 Bean 对象,而 BeanFactory 是需要使用哪个才加载哪个

从Spring中取出Bean对象

获取 Bean 对象有三种方式,如下:

		//从spring中取出Bean对象
		
        //1. 通过Id来获取bean
        User user = (User) context.getBean("user");
        
        //2. 通过类类型来获取bean
        User user = context.getBean(User.class);
        
        //3. 通过id+类类型来获取bean
        User user = context.getBean("user",User.class);

注:

  1. 根据 id 来获取 Bean 对象时,使用的 id 要和我们把 Bean 存储到配置文件中设置的 id 一样
  2. 根据类类型来获取 Bean 对象时,当 Spring 中有多个相同类型的对象时,就会获取失败
  3. 我们常用的方式是 id + 类类型 来获取 Bean 对象

使用Bean对象

我们获取到 Bean 对象后,对于 Bean 对象可以自由使用(想怎么使用怎么使用,不受限制)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

48个代码大模型汇总,涵盖原始、改进、专用、微调4大类

代码大模型具有强大的表达能力和复杂性,可以处理各种自然语言任务,包括文本分类、问答、对话等。这些模型通常基于深度学习架构,如Transformer,并使用预训练目标(如语言建模)进行训练。 在对大量代码数据的…

配电网重构单时段+多时段(附带matlab代码)

配电网重构单时段多时段 对于《主动配电网最优潮流研究及其应用实例》的基本复现 简介:最优潮流研究在配电网规划运行中不可或缺,且在大量分布式能源接入的主动配电网环境下尤为重要。传统的启发式算法在全局最优解和求解速度上均无法满足主动配电网运行…

什么是计算机病毒?

计算机病毒 1. 定义2. 计算机病毒的特点3. 计算机病毒的常见类型和攻击方式4. 如何防御计算机病毒 1. 定义 计算机病毒是计算机程序编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或程序代码。因其特点与生…

【面试】typescript

目录 为什么用TypeScript? TS和JS的区别 控制类成员可见性的访问关键字? public protected),该类及其子类都可以访问它们。 但是该类的实例无法访问。 私有(private),只有类的成员可以访问…

什么是媒体发布?媒体发布平台有哪些?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 一,什么是媒体发布? 媒体发布是指利用互联网媒体及移动端媒体和传统媒体发布关于人物、品牌、商业公司等的新闻及推广软文和传记等的行为。媒体平台可以是电视、…

C51--LCD1602显示屏

LCD602显示: 1、概述 LCD602是一种工业字符型液晶,能够同时显示16x02,即32字符(16列,2行) 2、引脚: VSS:电源地VDD:电源正极——5V电源VO: 液晶显示偏压 …

激光切割机切割工件出现锯齿是什么原因?

金属激光切割机因切割速度快,效率高,切割效果好受到广大金属加工需求的厂家追捧,但在使用时不免出现一些小问题,如:在激光切割加工的时候出现锯齿的问题。 编辑搜图 请点击输入图片描述(最多18字&#xff…

详解Python中httptools模块的使用

httptools 是一个 HTTP 解析器,它首先提供了一个 parse_url 函数,用来解析 URL。这篇文章就来和大家聊聊它的用法吧,感兴趣的可以了解一下 如果你用过 FastAPI 的话,那么你一定知道 uvicorn,它是一个基于 uvloop 和 h…

京东API商品详情接口,通过商品ID获取商品名称,淘宝主图,价格,颜色规格尺寸,库存,SKU数据等调用示例

要接入京东API接口以采集电商平台上的商品数据,可以按照以下步骤进行: 注册并获取API密钥:在使用API接口之前,需要注册并获取API密钥。API密钥是识别身份的唯一标识符。每个API接口都有自己的注册、认证和授权过程,因…

Find My电容笔|苹果Find My技术与电容笔结合,智能防丢,全球定位

随着平板电脑的流行,有不少厂商都投入到了电容笔的开发当中,现在的电容笔不仅在精度上有了提高,甚至在笔触和压感上的研究都有进步。电容笔是利用导体材料制作的具有导电特性、用来触控电容式屏幕完成人机对话操作用的笔,电容笔通…

tsx语法

安装JSX库 安装完之后在vite.config.ts进行插件使用,代码如下: 然后就可以愉快的使用TSX来开发Vue组件了,下面主要说一下SFC和TSX的部分区别。 基本语法对照 defineComponent 和 setup setup中函数的返回值有多种方式,可以直接…

异常数据检测 | Python实现oneclassSVM模型异常数据检测

支持向量机(SVM)的异常检测 SVM通常应用于监督式学习,但OneClassSVM[8]算法可用于将异常检测这样的无监督式学习,它学习一个用于异常检测的决策函数其主要功能将新数据分类为与训练集相似的正常值或不相似的异常值。 OneClassSVM OneClassSVM的思想来源于这篇论文[9],SVM使用…

挑战传统IT:RPA以更低的成本和更高的效率领跑数字化转型

在企业数字化进程中,传统的IT解决方案往往带来高成本和低效率的问题。因此,如何顺利地、平稳地进行数字化转型对企业来说是核心考虑。 为此,本文将深入探讨RPA(Robotic Process Automation)如何以其独特的优势&#xf…

RabbitMQ消息模型之发布订阅Publish-Subscribe

发布订阅模型 Publish/Subscribe 发布订阅模型也称为广播模型,交换机类型需要指定为Fanout,正如从名称中猜到的那样,它是将接收到的所有消息广播到它知道的所有队列中。每个消费者都监听自己的队列,所以同一个消息,会…

MNIST手写数字识别

本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在Pytorch&#xff…

OpenMMlab导出FCN模型并用onnxruntime推理

导出onnx文件 直接使用脚本 import torch from mmseg.apis init_modelconfig_file configs/fcn/fcn_r18-d8_4xb2-80k_cityscapes-512x1024.py checkpoint_file fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth model init_model(config_file, checkpoin…

YOLOv8 代码部署

一、获取代码 YOLOv8官方GitHub网址 https://github.com/ultralytics/ultralytics 获取YOLOv8代码压缩包 二、虚拟环境配置 这个就不写了,装个Anaconda,网上教程很多 三、PyCharm安装与配置(可选) 这个也不写了,…

磁环电感参数计算

磁环电感参数计算 1.什么是电感磁饱和2.电感饱和的原因3.电感饱和带来的影响3.1 感应电动势变化3.2 电感值变化3.3 功率损耗增加3.4 系统稳定性受到影响4.饱和电流计算最近在做DC/DC电源,电感是用磁环绕制的,所以关注一下磁环绕制电感参数的计算,学习学习。 某款磁环参数。 …

SpringBoot——Swagger2 接口规范

优质博文:IT-BLOG-CN 如今,REST和微服务已经有了很大的发展势头。但是,REST规范中并没有提供一种规范来编写我们的对外REST接口API文档。每个人都在用自己的方式记录api文档,因此没有一种标准规范能够让我们很容易的理解和使用该…

3dMax导出glft和glb格式模型插件Max2Babylon教程

为了满足Autodesk提供自己的导出管道之前的迫切需要,Babylon.js导出器可用于3dMax。导出器可以将3dMax场景导出为.glTF文件、.glb文件或.babylon文件。 【适用版本】 3dMax2015 - 2024 【安装方法】 1.选择和自己电脑中3dMax所对应的插件版本,解压缩。…