认识spring项目的创建 和 从spring中进行Bean对象的存取

news2025/4/17 4:48:17

前言

本篇简单介绍如何创建spring项目,如何存储到spring容器中,如何从容器中获取Bean对象,如有错误,请在评论区指正,让我们一起交流,共同进步!


文章目录

  • 前言
    • 1. 创建spring项目
    • 2. 将Bean对象存储到spring容器中
    • 3.从容器中获取Bean对象
      • 3.1 使用ApplicationContext获取上下文
      • 3.2 使用BeanFactory获取上下文
    • 4. ApplicationContext 与 BeanFactory的区别
  • 总结

本文开始

1. 创建spring项目

创建spring项目与普通创建Maven项目大致过程相似;

1)创建点击IDEA中的new project创建一个新项目
2)再点击Maven,进行下一步
3)选择Maven文件存储路径,点击Finsh项目就创建完成;
4)添加spring依赖
主要依赖于两个依赖:spring-contenxt 和 spring-beans;
5) 创建一个启动类, 用于测试;例如这里的App类;

2. 将Bean对象存储到spring容器中

1)创建一个Bean对象:这里的Bean对象就是Java中的一个类,自己创建即可;=> Bean对象 == 一个普通java类
示例:这里创建的Bean对象是UserService

在这里插入图片描述

  1. 将Bean对象存储到spring容器中
    首先需要创建一个类,也就是Bean对象;
    然后再创建一个.xml配置文件去放Bean对象;
    然后再使用bean标签存放对象,并设置存放对象在容器中的名字和存储到容器中的路径;
    最后再通过启动类,进行测试即可;

xml文件创建的路径在这里插入图片描述
xml文件的内容:格式+存储的对象在这里插入图片描述
bean标签中的id:将对象存储到容器中的名字,调用的时候使用;class:类名:包名+类名,存储到容器中Bean对象的完整路径;

【注】这里需要先创建一个xml文件,并在文件中配置spring的xml格式,最后再使用bean标签存储对象;配置的xml文件自己找;

3.从容器中获取Bean对象

3.1 使用ApplicationContext获取上下文

1)首先得到spring上下文对象;(上下文 == 容器对象)
2)获取对象根据.xml文件中设置的id名称获取;

在这里插入图片描述
【注】通过xml来获取上下文对象: 参数为自己创建的xml文件;
给Bean对象起的id == 获取时使用的名称;
此处使用依赖查找的方式;

3.2 使用BeanFactory获取上下文

【注】BeanFactory: 已经过时了;
代码示例:

在这里插入图片描述

认识获取Bean的三种方式:
1)根据 id 获取Bean对象: 需要强制类型转换

在这里插入图片描述

2)根据类型获取Beand对象: 对于同一个类型,多次注入容器,再获取Bean对象可能会报错;

在这里插入图片描述

3)根据 id + 类型获取Bean对象

在这里插入图片描述

4. ApplicationContext 与 BeanFactory的区别

  • 相同点:都是容器管理对象,都可以获取 Bean 对象
  • 不同点:
    a) ApplicationContext 是 BeanFactory 的子类,ApplicationContext 有更多的功能;
    b) 加载Bean机制不同:BeanFactry 是懒加载,使用一个加载一个,ApplicationContext一次加载所有的Bean对象;
    【注】ApplicationContext : 一次加载所有对象,启动慢,但启动后获取对象快;
    BeanFactory: 使用一个加载一个,启动快,但后期获取对象慢,需要重新new;

总结

✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

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

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

相关文章

信息与通信工程学科面试准备——通信原理|信息与通信工程方向保研面试题集|BUAA

注意: 以下内容,基本上都是二系通信方向保研复试被提问过的内容。如果是专硕,那么电路分析、电磁场、DSP等方面的问题会更多,这里主要针对通信学硕。以下内容不能保证全覆盖:有的同学被问到什么是范德蒙行列式&#x…

[SQL挖掘机] - SQL挖掘机系列整体规划

这里直接进行相关操作, 在Linux或者Windows系统如何安装MySQL, 可以参考博客平台其他大佬的分享. 还有就是, 这里相当于是从数据库–>数据表–>各种约束–>数据类型–>数据表的增删改等操作, 最后就是主要的数据表的查询操作了, 其他的内容根据自己的学习进程进行…

shell脚本中getopts的使用

在shell中,getopts用于解析命令选项和参数。getopts是Bash shell的内置命令,不支持长选项,仅解析短选项,即一个破折号("-")和一个字母或数字,如-1,-e, -E等。 getopts格式如下:…

ATF(TF-A)之sonarlint静态代码分析实战

ATF(TF-A)/OPTEE之静态代码分析汇总 一、ATF源码下载及分析 对ATF实施soanrlint静态代码扫描之前,先到官方网站下载源码。官方网站位于github,网址 GitHub - ARM-software/arm-trusted-firmware: Read-only mirror of Trusted Firmware-A。 各发布版本及对应的时间节点如下…

算法图解注疏(待续)

目录 算法简介二分查找简单查找更佳的查找方式二分查找的几种模板模板1模板2模板3 运行时间 大O表示法大O表示法指出了最糟情况下的运行时间一些常见的大O运行时间 O(n!)旅行商问题 选择排序内存的工作原理数组和链表选择排序 递归基线条件和递归条件栈递归调用栈 快速排序分而…

Istio Pilot源码学习(二):ServiceController服务发现

本文基于Istio 1.18.0版本进行源码学习 4、服务发现:ServiceController ServiceController是服务发现的核心模块,主要功能是监听底层平台的服务注册中心,将平台服务模型转换成Istio服务模型并缓存;同时根据服务的变化&#xff0c…

MongoDB 的日常使用

一、简介 1、 常见的数据库分类 RDBMS(关系型数据库):常见的关系型数据库有 Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL; NoSQL(非关系型数据库):常见的非关系型数据库有 …

算法笔记(java)——回溯篇

回溯算法解决问题最有规律性,借用一下卡哥的图: 只要遇到上述问题就可以考虑使用回溯,回溯法的效率并不高,是一种暴力解法,其代码是嵌套在for循环中的递归,用来解决暴力算法解决不了的问题,即…

【机器学习】模型常用评估指标

L0 范数、L1 范数、L2 范数、余弦距离 向量的范数可以简单形象理解为向量的长度,或者向量到零点的距离,亦或是相应两个点之间的距离。因此范数通常会对应一个距离概念。 L0 范数 L0 范数表示向量中非零元素的个数: ∣ ∣ x ∣ ∣ 0 # ( i…

elasticsearch IK分词器

说明:es默认的分词器对中文的识别不是特别好,一段话的分词是一个一个汉字,这显然没有达到想要的结果。 可以安装IK分词器,兼容中文的分词; IK分词器 安装 安装IK分词器,例如elasticsearch的容器名为es&a…

探索Java并发编程利器:LockSupport,一种高效的线程阻塞与唤醒机制

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、用法四、原理五、线程等待和唤醒的方法5.1 Lo…

Microsoft Edge 浏览器的Bing Chat

微软公司持续发力,推出的产品 Bing Chat 与 ChatGPT 之间的竞争愈发激烈。如今,微软不仅不断更新 Edge 浏览器,还将 Bing Chat 内置在边栏中,方便用户快速访问。这一举措不禁让人想起,Edge 浏览器如今已经是一款名副其…

Maven项目的两种打包方式-spring-boot-mavne-plugin/maven-jar-plugin

Maven项目的两种打包方式-spring-boot-mavne-plugin/maven-jar-plugin 1. 前言Maven的两种打包方式 2. 流程图3. spring-boor-maven-plugin打包4. maven-jar-plugin/maven-dependency-plugin打包 1. 前言 Maven的两种打包方式 spring-boot-maven-plugin springboot默认打包方…

新星计划联系人列表管理后台(一)-- 搭建项目开发环境

前言:对于前端的内容目前已经发现了很多大佬写的高质量文章,我这里就没必要再重复去造轮子了。接下来我会记录一下我从零到整完成此项目的过程,类似于日记,我会把我开发的步骤、过程中遇到的问题、如何解决此问题的思路、以及get到…

FPGA+EMMC 8通道存储小板

FPGA 采用XILINX公司A7100作为主芯片 AD采用AD7606及一款陀螺仪传感器,可以实时存储到EMMC,系统分为采集模式及回放模式 通过232接口对工作模式进行配置,采样率可以动态配置 回放采用W5100S通过TCP协议进行回放数据

福格行为模型

福格行为模型 福格行为模型也被称为“上瘾模型”,在工作和生活中应用非常的广泛。在工作中:产品设计、用户运营策略、活动设计、广告设计、游戏设计等等;在生活中:学习习惯培养、持续的健身、减肥计划等等。这些事通常大家以为是…

【N32L40X】学习笔记10-外部触发方式计数

定时器采用外部触发方式计数 也就是外部时钟源模式2 此模式由 TIMx_SMCTRL .EXCEN 选择等于 1。计数器可以在外部触发输入 ETR 的每个上升沿或下降沿 计数。 极性选择分频选择过滤选择选择外部时钟ETR模式 bsp_time_counter_ETR.h #ifndef _BSP_TIME_COUNTER_ETR_H_ #defi…

STM32(HAL库)驱动AD8232心率传感器

目录 1、简介 2、CubeMX初始化配置 2.1 基础配置 2.1.1 SYS配置 2.1.2 RCC配置 2.2 ADC外设配置 2.3 串口外设配置 2.4 GPIO配置 2.5 项目生成 3、KEIL端程序整合 3.1 串口重映射 3.2 ADC数据采集 3.3 主函数代码整合 4 硬件连接 5 效果展示 1、简介 本文通过STM32…

【车载性能优化】将线程进程运行在期望的CPU核心上

车载Android应用开发中,可能会出现一种奇葩的要求:与用户交互时应用需要全速运行,保证交互的流畅性,但是如果应用进入后台就需要怠速运行,让出更多的资源保证系统或前台应用的流畅度。那么基于这种需求,我们…

深度学习(31)——DeformableDETR(2)

深度学习(31)——DeformableDETR(2) 文章目录 深度学习(31)——DeformableDETR(2)1. backbone——Resnet502. neck——Channel mapper3. DeformableDETRHead4. DeformableDetrTransf…