【Java】Spring——创建Spring + 对Spring的存储 /读取对象操作

news2024/11/17 3:54:10

文章目录

  • 前言
  • 一、创建Spring项目
  • 二、向Spring容器中存储 Bean 对象
  • 三、从Spring容器中读取 Bean 对象
    • 得到Spring上下文对象
    • 得到 Bean 对象
  • 总结


前言

本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话,互关一下,以后互相学习,共同进步。这篇文章能够帮助到你的话,劳请大家点赞转发支持一下!


一、创建Spring项目

创建Spring也很简单,分为三步。

1️⃣ 创建一个普通的Maven项目。 在这里插入图片描述

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

2️⃣ 添加Spring框架支持 :在项目的 pom.xml 中添加 Spring 框架的支持(添加Spring 框架支持的代码在下面!)。
在这里插入图片描述

注意:代码中的 Spring的版本号要与JDK的版本号对应 (JDK1.8就是JDK8,具体请看下面官方说明与大佬博客)。

JDK版本号对应的Spring版本号

一文彻底搞懂令人疑惑的Java和JDK的版本命名!

<dependencies>
   <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.3.RELEASE</version>
    </dependency>
  
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>5.2.3.RELEASE</version>
    </dependency>
</dependencies>

第一次引入Spring框架支持的时候会下载jar包,如果下载缓慢或下载失败,可以配置国内源,具体如何配置还请大家问下度娘。

3️⃣ 添加启动类

最后在创建好的项目 java ⽂件夹下创建⼀个启动类,包含 main 方法即可。在这里插入图片描述


在 Java 语言中对象也叫做 Bean ,所以再遇到对象就以 Bean 著称。

二、向Spring容器中存储 Bean 对象

也是分为简简单单的三步。

1️⃣要存储Bean,得先有Bean才行啊,现在我们创建两个Bean,Student与Teacher。

在这里插入图片描述
在这里插入图片描述
要注意Teacher是在test包下, Student是在demo包下。

2️⃣创建配置文件
resources 目录下 ,创建 Spring 配置文件:xxx.xml(名称没有限制, 一定要是xml格式 )在这里插入图片描述
配置文件的代码放在下面了!!

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:content="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
</beans>

3️⃣将Bean注册到Spring容器
在配置文件中注册。在这里插入图片描述

注意:是放在beans标签下。

<bean id="" class=""></bean>

上述操作就将Student与Teacher对象注册到了Spring容器中。


三、从Spring容器中读取 Bean 对象

分为简简单单的两步。
1️⃣ 得到 Spring 上下文对象。
2️⃣ 通过 Spring 上下文,获取某⼀个指定的 Bean 对象

以下操作均在启动类(App)中完成。

得到Spring上下文对象

1️⃣得到 Spring 上下文对象(相当于得到容器这个对象),因为对象都交给 Spring 管理了,所以获取对象要从 Spring中获取,那么就得先得到 Spring 的上下文。共有两种方式获得Spring的上下文对象。

第一种
在这里插入图片描述

第二种
在这里插入图片描述

两种得到 Spring 上下文对象的方式的区别:
不同:

ApplicationContext 属于 BeanFactory 的子类,ApplicationContext 拥有更多功能 (国际化支持资源访问支持、以及事件传播等方面的支持…)。

BeanFactory启动非常快,启动后获取对象慢。
ApplicationContext启动慢,启动后获取对象非常快。


加载 Bean 机制不同:
BeanFactory 懒加载(懒汉),按需加载(使用一个Bean加载一个Bean)。ApplicationContext(饿汉) 一次性加载所有 Bean 对象。



相同:
都是容器管理对象,都可以获取 Bean 对象。

得到 Bean 对象

2️⃣通过 Spring 上下文,获取某⼀个指定的 Bean 对象。

有三种获取Bean对象的方式。

第一种:根据名字获取 在这里插入图片描述
在这里插入图片描述

第二种:根据类型获取

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

但是这里有一个问题,当容器中多个同一类型的对象,会怎么样? 在这里插入图片描述
在这里插入图片描述
代码不变,程序抛出异常! 在这里插入图片描述

当容器中存在两个相同类型的对象,使用类型获取该对象就会抛出异常

所以使用类型获取对象的方法,使用时要小心!!!

第三种:根据名字+类型获取
此时容器中仍然存在两个相同类型的对象,不过这里就没有任何问题了。 在这里插入图片描述
在这里插入图片描述


总结

以上就是今天要讲的内容,本文介绍了如何创建Spring以及对Spring的存储取出对象操作。
但是以上的存储取出对象操作,还要去配置文件里专门写代码去配置,然后还要通过上下文对象进行获取,这不也挺麻烦吗,还不如直接new好使呢。

下篇文章介绍通过注解实现更简单的Spring存储取出操作,敬请期待!

路漫漫不止修身,也养性。

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

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

相关文章

AI Chat 设计模式:10. 组合模式

本文是该系列的第八篇&#xff0c;采用问答式的方式展开&#xff0c;问题由我提出&#xff0c;答案由 Chat AI 作出&#xff0c;灰色背景的文字则主要是我的一些思考和补充。 问题列表 Q.1 给我介绍一下组合模式A.1Q.2 好的&#xff0c;给我举一个组合模式的例子&#xff0c;使…

android存储4--初始化.emulated设备的挂载

android版本&#xff1a;android-11.0.0_r21http://aospxref.com/android-11.0.0_r21 android手机的挂载非常复杂。这篇文章针对emulated存储&#xff0c;介绍它的挂载过程。 一、为什么emulted存储要用很复杂的挂载方式 1&#xff0c; emulted存储是什么 android早期&#…

QTday4(鼠标事件和键盘事件/QT实现连接TCP协议)

笔记 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QTcpServer>//服务器类 #include <QTcpSocket>//客户端类 #include <QMessageBox> #include <QList>//链表容器QT_BEGIN_NAMESPACE namespace Ui …

【数据结构】实验十二:图 查找

实验十二 图查找 一、实验目的与要求 1&#xff09;掌握拓扑排序的应用&#xff1b; 2&#xff09;掌握查找的概念和算法&#xff1b; 3&#xff09;掌握查找的基本原理以及各种算法的实现&#xff1b; 4&#xff09;掌握查找的应用。 二、实验内容 1. 用邻接表建立一…

安卓:百度地图开发(超详细)

一、百度地图介绍 百度地图SDK是一套供开发者使用的软件开发工具包&#xff08;SDK&#xff09;&#xff0c;用于在Android应用程序中集成和使用百度地图功能。通过使用百度地图SDK&#xff0c;开发者可以实现在自己的应用中显示地图、获取定位信息、进行搜索、导航等功能。 百…

机器视觉初步14:相机标定原理及应用

相机标定是指通过已知的相机参数&#xff0c;解算相机内部参数矩阵和外部参数矩阵。 文章目录 1.为什么要标定&#xff1f;2.工业场景中常见的标定方法2.1. 使用棋盘格标定板&#xff08;Checkerboard Markers&#xff09;2.2 使用相机自标定2.3. 使用三维物体标定2.4.九孔标…

MATLAB与ROS联合仿真——控制类功能模块介绍

1、Keyboard Control &#xff08;1&#xff09;输入参数&#xff1a;无 &#xff08;2&#xff09;输出参数&#xff1a;Speed Factor为输出的速度系数&#xff08;1代表前行&#xff0c;0停止&#xff0c;-1代表后退&#xff09;&#xff0c;Turn Factor为输出的舵机系数&am…

excel绘制折线图或者散点图

一、背景 假如现在通过代码处理了一批数据&#xff0c;想看数据的波动情况&#xff0c;是不是还需要写个pyhon代码&#xff0c;读取文件&#xff0c;绘制曲线&#xff0c;看起来也简单&#xff0c;但是还有更简单的方法&#xff0c;就是直接生成csv文件&#xff0c;csv文件就是…

windows11打不开任务管理器,

目录 第一章、win11系统任务管理器打不开&#xff1f;第二章、解决方式修改注册表 友情提醒&#xff1a; 先看文章目录&#xff0c;大致了解文章知识点结构&#xff0c;点击文章目录可直接跳转到文章指定位置。 第一章、win11系统任务管理器打不开&#xff1f; Win11任务管理…

达梦数据库DEM监控部署

1、安装达梦8数据库 在192.168.1.253 windows机器上安装达梦8数据库 解压dm8_setup_win64_ent_8.1.1.56_20200115.iso安装包运行安装程序setup.exe 数据库安装信息&#xff1a; 数据库名:CBDM 实例名:CBDM 数据库目录:D:\dmdbms\data 端口:5236 控制文件: D:\dmdbms\data\CBDM\…

技术复盘(5)--git

技术复盘--git 资料地址原理图安装配置基本命令分支命令对接gitee练习:远程仓库操作 资料地址 学习地址-B站黑马&#xff1a;https://www.bilibili.com/video/BV1MU4y1Y7h5 git官方&#xff1a;https://git-scm.com/ gitee官网&#xff1a;https://gitee.com/ 原理图 说明&am…

Vue-Router基本使用

1 安装&#xff1a; vue2项目要安装vue-router3版本 npm i vue-router3 2 src下创建router目录&#xff0c;router文件夹下创建index.js 在vue.config.js中 配置src路径别名 3 在main.js中引入 4 在app.vue中配置 5 即可看到内容

十分钟配置好Neovim go开发环境(其他语言一样)

文章目录 前言仓库地址用法快捷键问题反馈 前言 这篇文章的目的是为了分享下我自己的Neovim配置。 本人是Golang程序员&#xff0c;最开始使用的IDE是JetBrains Goland。有一说一这个ide适配度很高&#xff0c;认识的很多人都使用这个。但是它也有几个对我来说的缺点&#xf…

JSP 结构和指令

JSP 结构 网络服务器需要一个 JSP 引擎&#xff0c;也就是一个容器来处理 JSP 页面。容器负责截获对 JSP 页面的请求。本教程使用内嵌 JSP 容器的 Apache 来支持 JSP 开发。 JSP 容器与 Web 服务器协同合作&#xff0c;为JSP的正常运行提供必要的运行环境和其他服务&#xff…

低代码:告别繁琐,提速软件开发

一、前言 数字化进程加速&#xff0c;对于软件开发效率和成本的要求在不断提高。与此同时&#xff0c;低代码技术的出现为这项高成本的人力开发提供了便捷。目前&#xff0c;低代码已广泛应用于各行各业&#xff0c;帮助企业提高应用开发效率、降低开发成本、提高软件质量&…

Vue 3:玩一下web前端技术(四)

前言 本章内容为VUE开发环境的使用与相关使用讨论。 上一篇文章地址&#xff1a; Vue 3&#xff1a;玩一下web前端技术&#xff08;三&#xff09;_Lion King的博客-CSDN博客 下一篇文章地址&#xff1a; &#xff08;暂无&#xff09; 一、开发环境的使用 1、汉化VScod…

提升设计技能,教你玩转CAD中的辅助命令

大家好&#xff0c;今天先来了解一下CAD软件中的视图操作。 CAD设计中的辅助命令是实现精准和高效设计的关键要素。熟练掌握并正确运用CAD中的各类辅助命令&#xff0c;对于设计师们来说至关重要。本文将为您提供如何正确使用CAD中的辅助命令的实用指南&#xff0c;帮助您优化…

动手学深度学习——实战Kaggle比赛:预测房价(代码详解+调参优化)

目录 1. 下载和缓存数据集2. Kaggle3. 访问和读取数据集4. 数据预处理5. 训练6. K折交叉验证7. 模型选择8. 提交Kaggle预测9. 调参优化 1. 下载和缓存数据集 数据集百度云&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/14CVZBjmlKA_c3MYNFLSvbg?pwdpysi 提取码&…

脚手架(vue-cli)的安装详细教程

首先要下载node.js 下载 | Node.js 中文网 (nodejs.cn)https://nodejs.cn/download/ 大家根据自己的系统来选择哪个&#xff0c;我是Windows系统&#xff0c;所以选择红色箭头所指的安装包去安装&#xff01;&#xff01;&#xff01; 接下来双击安装&#xff01;&#xff01;…