当前位置: 首页 > news >正文

【JavaEE】Spring的创建和使用(保姆级手把手图解)

一、创建一个Spring项目

在这里插入图片描述

1.1 创建一个Maven项目

在这里插入图片描述

1.2 添加 Spring 框架支持

在pom.xml中添加

<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>

在这里插入图片描述

1.3 添加启动类

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

二、如何使用Spring?

我们知道:Spring是包含了众多工具方法的 IoC 容器

我们执行完上面三个步骤,就算是有了这个IoC容器

有了容器应该怎么用?—> 往里放东西和取东西

对应了Spring最核心的功能 —> 存对象和取对象

Spring里存的和取的东西是啥? —> Bean对象
在这里插入图片描述
下图就是使用Spring的步骤:
在这里插入图片描述

2.1 存储Bean对象

在这里插入图片描述

2.1.1 创建一个Bean

所谓的Bean就是Java里的一个普通对象,在这里我们在Java目录下创建一个User类:
在这里插入图片描述

public class User {public String sayHi(String name) {return name + "  hello!";}
}

2.1.2 将Bean注册到容器

在这里插入图片描述
配置文件:

<?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"></beans>

在这里插入图片描述
注册到Spring:

<bean id="user" class="com.Ethan.User"></bean>

2.2 获取并使用Bean对象

在这里插入图片描述

2.2.1 创建Spring上下文

在这里插入图片描述

ApplicationContext context = new ClassPathXmlApplicationContext("com.Ethan.User");

2.2.2 获取指定的Bean对象

在这里插入图片描述

User user = (User) context.getBean("user");

2.2.3 使用Bean

在这里插入图片描述

三、补充

3.1 创建Spring上下文对象(BeanFactory)

在这里插入图片描述

3.2 getBean()方法的更多用法

在这里插入图片描述

相关文章:

【JavaEE】Spring的创建和使用(保姆级手把手图解)

一、创建一个Spring项目 1.1 创建一个Maven项目 1.2 添加 Spring 框架支持 在pom.xml中添加 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE&…...

MyBatis:关联查询

MyBatis 前言关联查询附懒加载对象为集合时的关联查询 前言 在 MyBatis&#xff1a;配置文件 文章中&#xff0c;最后介绍了可以使用 select 标签的 resultMap 属性实现关联查询&#xff0c;下面简单示例 关联查询 首先&#xff0c;先创建 association_role 和 association_…...

第十二章 控制值的转换

文章目录 第十二章 控制值的转换介绍处理特殊 XML 字符文字和 SOAP 编码格式的转义形式 示例防止泄漏的另一种方法 第十二章 控制值的转换 类和属性参数 ESCAPE CONTENT XMLTIMEZONE DISPLAYLIST VALUELIST XMLDEFAULTVALUE XMLLISTPARAMETER XMLSTREAMMODE 介绍 支…...

SQL并集、交集、差集使用

一、概述 SQL语句实现数据的并集&#xff08;union&#xff09;、交集&#xff08;intersect&#xff09;、差集&#xff08;except&#xff09;。 二、案例 1、stu表 idname1张三2李四3王二 2、并集 union union 运算&#xff1a;表示取并集&#xff0c;例如&#xff1a…...

【双指针】盛水最多的容器

盛水最多的容器 文章目录 盛水最多的容器题目描述算法原理思路一思路二 代码实现Java代码实现C代码实现 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与…...

win11,引导项管理

1&#xff0c;打开cmd,输入msconfig 2,进入引导选项卡 3&#xff0c;删除不需要的引导项...

YoloV8改进策略:WaveletPool解决小目标的混叠问题,提高小目标的检测精度

文章目录 摘要论文:《抗混叠在微小目标检测中的重要性》1、简介2、相关研究2.1、微小物体检测2.2. 抗锯齿过滤器3、方法3.1. Wavelet Pooling3.2 一致顺序的Wavelet Pooling的WaveCNet3.3、Bottom-Heavy Backbone4、实验4.1、预训练数据集4.2、微小目标检测数据集4.3、抗混叠方…...

JavaScript中的假值对象是什么?

JavaScript是一种非常灵活且强大的编程语言&#xff0c;但有时候它的一些特性可能会让人感到困惑。其中一个常见的问题就是假值对象。在本文中&#xff0c;我们将探讨什么是假值对象&#xff0c;并通过代码示例来解释这个概念。 什么是假值对象&#xff1f; 在JavaScript中&am…...

求二叉树的最大密度(可运行)

最大密度&#xff1a;二叉树节点数值的最大值 如果没有输出结果&#xff0c;一定是建树错误&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 我设置输入的是字符型数据&#xff0c;比较的ASCII值。 输入&#xff1a;FBE###CE### 输…...

V100 GPU服务器安装CUDNN教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

RT-Thread Hoist_Motor PID

本节介绍的是一个举升电机&#xff0c;顾名思义&#xff0c;通过转轴控制物体升降&#xff0c;为双通道磁性译码器&#xff0c;利用电调进行操控&#xff0c;具体驱动类似于大学期间最大众的SG180舵机&#xff0c;在一定的频率下&#xff0c;通过调制脉宽进行控制。 设备介绍…...

css 实现文字流光效果

经过调研发现大多滑块验证码中&#xff0c;有一些文字流光效果&#xff0c;因此在这里简单实现一下。 实现主要利用background 渐变背景以及backgorund-clip:text实现。具体代码如下 css部分 .slide {width: 300px;height: 40px;border: 1px solid #ccc;border-radius: 8px;…...

3D格式转换工具

这里记录下自己之前做3D模型格式转换&#xff0c;包括做CAD模型格式转换辅助的一些开源仓库和工具 &#xff08;一&#xff09;转换成gltf工具 gltf作为3D界的jpg标准&#xff0c;如今已经有很多引擎对其进行了支持&#xff0c;这里单独把它列出来 1. obj转glft工具 git仓库…...

seismicunix基础-声波波动方程推导

seismicunix基础-声波波动方程推导 接触波动方程的研究人员都绕不开这个公式&#xff0c;这是在一维状态下波动方程 但是对于这个方程是怎样来的很少有人能说清楚&#xff0c;其中涉及到牛顿第二运动定律&#xff0c;物体的加速度与受到的力有关。 假设一维弦是大量紧密连接的质…...

2024电脑录屏软件排行第一Camtasia喀秋莎

真的要被录屏软件给搞疯了&#xff0c;本来公司说要给新人做个培训视频&#xff0c;想着把视频录屏一下&#xff0c;然后简单的剪辑一下就可以了。可谁知道录屏软件坑这么多&#xff0c;弄来弄去头都秃了&#xff0c;不过在头秃了几天之后&#xff0c;终于让我发现了一个值得“…...

MQTT通信协议使用说明

目录 1 MQTT连接属性1.1 服务器URL(Broker Address)1.2 客户端标识(clientID)1.3 用户名称 & 密码(User Name & Password)1.4 连接超时(Connection Timerout)1.5 心跳间隔 (KeepAlivelnterval)1.6 清除会话(cleanSession) 2 主题&消息2.1 主题2.1.1 订阅主题(SUBSC…...

mysql底层是如何存放数据的

总览 首先总的来说&#xff0c;分为四个层级&#xff0c;行页区段。行就是数据库里的一行数据。 但一次从磁盘读进内存的数据量是一页&#xff08;页是读写的单位&#xff0c;默认16KB一页&#xff09;&#xff0c;页分很多种类&#xff0c;例如数据页、溢出页、undo日志页。 …...

【代码随想录】刷题笔记Day33

前言 Day33虽说是一个月&#xff0c;但是从第一篇开始实际上已经过了8个月了&#xff0c;得抓紧啊 46. 全排列 - 力扣&#xff08;LeetCode&#xff09; 前面组合就强调过差别了&#xff0c;这道题是排序&#xff0c;因此每次要从头到尾扫&#xff0c;结合used数组 class So…...

AD从原理图到PCB超详细教程

AD超详细教程 前言一、建立一个工程模板二、原理图1.设计原理图。2.使用AD自带库和网上开源原理图库3.画原理图库4.编译原理图 三、PCB1.确定元器件尺寸大小2.绘制PCB Library①使用元器件向导绘制元件库②原理图与PCB的映射 3.绘制PCB①更新PCB②调整元件位置③布线④漏线检查…...

2023.11.20使用flask做一个简单图片浏览器

2023.11.20使用flask做一个简单图片浏览器 功能&#xff1a; &#xff08;1&#xff09;输入指定路径&#xff0c;打开文件夹 &#xff08;2&#xff09;判断文件格式为图片 &#xff08;3&#xff09;在前端进行预览 &#xff08;4&#xff09;使用bootstrap进行简单美化 ma…...

时变路网下考虑时间满意度的L连锁公司配送路径【附代码】

✅ 博主简介&#xff1a;擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 如需沟通交流&#xff0c;扫描文章底部二维码。&#xff08;1&#xff09;路段行程时间深度时空预测与顾客时间满意度建模&#xff1a;…...

别再死记硬背Verilog语法了!用Hdlbits刷题搞定组合逻辑(附7458芯片实战)

从Hdlbits实战到Verilog思维跃迁&#xff1a;7458芯片背后的组合逻辑精要 刚接触Verilog时&#xff0c;我们总容易陷入语法细节的泥潭——wire和reg的区别&#xff1f;assign和always块何时用&#xff1f;这些抽象概念往往让人望而生畏。但当我带领团队完成第一个FPGA项目后&a…...

OpenClaw 2.6.6 Windows 部署教程|拦截与报错一站式解决

OpenClaw 2.6.6 Windows 一键部署教程&#xff5c;零基础搭建本地 AI 智能助手 OpenClaw&#xff08;小龙虾&#xff09;是一款可在本地环境运行的 AI 智能操作工具&#xff0c;能够通过自然语言指令完成电脑操控、文件管理、办公自动化、浏览器操作、数据整理等任务。全程可视…...

告别TypeError:用f-string和format()优雅地拼接字符串与变量(Python 3.6+实战)

Python字符串格式化实战&#xff1a;从TypeError到优雅拼接 在Python开发中&#xff0c;字符串拼接是最基础却又最容易出错的环节之一。当你在构建动态报告、记录日志或生成API响应时&#xff0c;突然遇到"TypeError: can only concatenate str (not int) to str"这样…...

嵌入式实时调度器SST的极简设计与优化实践

1. 嵌入式实时调度器SST的设计哲学在资源受限的嵌入式环境中&#xff0c;实时调度器的设计往往面临一个根本性矛盾&#xff1a;功能完备性与资源消耗之间的权衡。传统RTOS解决方案如FreeRTOS或uC/OS虽然功能强大&#xff0c;但对于某些8位或16位微控制器而言&#xff0c;其内存…...

SkeyeVSS开发FAQ:国标视频流媒体转码与多码率自适应

试用安装包下载 | SMS | 在线演示 项目源码地址&#xff1a;https://github.com/openskeye/go-vss 1. 何时需要转码 播放端仅支持 H.264&#xff0c;源为 H.265&#xff1b;要求 低码率 外发&#xff0c;而设备只出主码流&#xff1b;需要将 PS/RTP 转为浏览器友好的 fMP4/HL…...

Dify插件开发实战:Python SDK快速构建AI工作流扩展工具

1. 项目概述与核心价值如果你正在为 Dify 构建自定义插件&#xff0c;并且厌倦了从零开始处理复杂的协议、序列化和生命周期管理&#xff0c;那么langgenius/dify-plugin-sdks这个项目就是你一直在找的“脚手架”。简单来说&#xff0c;它是一套官方维护的软件开发工具包&#…...

内存级向量检索库memsearch:原理、实战与性能调优

1. 项目概述&#xff1a;向量检索的“内存级”加速方案最近在折腾RAG&#xff08;检索增强生成&#xff09;应用时&#xff0c;向量数据库的检索延迟成了性能瓶颈。尤其是在处理高并发、低延迟的在线服务场景&#xff0c;即使是最优的索引&#xff0c;一次检索也常常需要几十到…...

TI DSP选型指南:C2000/C5000/C6000平台解析与应用

1. TI数字信号处理器选型指南与技术解析从事嵌入式系统开发十多年来&#xff0c;我深刻体会到数字信号处理器&#xff08;DSP&#xff09;选型对项目成败的决定性影响。德州仪器&#xff08;TI&#xff09;的TMS320系列作为行业标杆&#xff0c;其三大平台C2000、C5000和C6000覆…...

基于vLLM与FastAPI构建高效LLM推理服务:从量化部署到生产优化

1. 项目概述与核心价值如果你正在尝试将开源的大语言模型&#xff08;LLM&#xff09;部署到自己的服务器上&#xff0c;并且对“推理速度慢”、“显存爆炸”、“部署流程复杂”这几个词深有体会&#xff0c;那么你很可能已经听说过或者正在寻找像titanml/takeoff-community这样…...