第七节:如何浅显易懂地理解Spring Boot中的依赖注入(自学Spring boot 3.x的第二天)
大家好,我是网创有方,今天我开始学习spring boot的第一天,一口气写了这么多。
这节通过一个非常浅显易懂的列子来讲解依赖注入。
在Spring Boot 3.x中,依赖注入(Dependency Injection, DI)是一个核心概念,它允许你定义和配置对象之间的依赖关系,而不需要显式地在代码中创建这些对象。这样可以使代码更加模块化、可测试和可维护。
下面是一个用浅显易懂的语言解释Spring Boot 3.x中依赖注入的例子:
角色和任务:
假设你有一个“学生”(Student)类和一个“教师”(Teacher)类。老师负责教学生,学生负责学习
- 学生(
Student):学习。 - 教师(Teacher):用来教学生学习。
手动方式(不推荐)
public class Teacher {//教学方法public void teaching(){Student student = new Student();student.learning();;}
}
自动注入(推荐)

第一步:声明一个Teacher类
通过@Autowired注入Student对象
Teacher.java
@Component
public class Teacher {@Autowiredprivate Student student;//教学方法public void teaching(){student.learning();;}
}
第二步:声明一个Student类
Student.java代码如下:
@Component("student")
public class Student {@Value("小明")String name;//姓名@Value("18")int age;//年龄public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//学习方法public void learning(){System.out.println("我正在学习");}}
第三步:在Controller类中调用测试效果
通过调用teacher.teaching()方法测试下效果。
@SpringBootApplication
public class WcaiApplication {@Autowiredprivate Teacher teacher;public static void main(String[] args) {SpringApplication.run(WcaiApplication.class, args);
// var ctx = new AnnotationConfigApplicationContext(AppConfig.class);
// var student = ctx.getBean(Student.class);
// System.out.println(student.getName());
// System.out.println(student.getAge());}@Controllerpublic class HelloController {@GetMapping("/test")public String test() {teacher.teaching();return "index";}}}
测试打印效果如下:

相关文章:
第七节:如何浅显易懂地理解Spring Boot中的依赖注入(自学Spring boot 3.x的第二天)
大家好,我是网创有方,今天我开始学习spring boot的第一天,一口气写了这么多。 这节通过一个非常浅显易懂的列子来讲解依赖注入。 在Spring Boot 3.x中,依赖注入(Dependency Injection, DI)是一个核心概念…...
Postman自动化测试实战:使用脚本提升测试效率
在软件开发过程中,接口测试是确保后端服务稳定性和可靠性的关键步骤。Postman作为一个流行的API开发工具,提供了强大的脚本功能来实现自动化测试。通过在Postman中使用脚本,测试人员可以编写测试逻辑,实现测试用例的自动化执行&am…...
CSMA/CA并不是“公平”的
CSMA/CA会造成过于公平,对于最需要流量的节点,是最不友好的,而对于最不需要流量的节点,则是最友好的。 CSMA/CA是优先公平来工作的。 CSMA/CA首先各节点使用DIFS界定air idle,在此期间大家都等待 其次,为了同时发送引起碰撞,在DIFS之后随机从CWmin和CWmax之间选择一个时…...
【漏洞复现】I doc view——任意文件读取
声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 I doc view 在线文档预览是一个用于查看、编辑、管理文档的工具…...
图数据库 vs 向量数据库
最近大模型出来之后,向量数据库重新翻红,业界和市场上有不少声音认为向量数据库会极大的影响图数据库,图数据库市场会萎缩甚至消失,今天就从技术原理角度来讨论下图数据库和向量数据库到底差别在哪里,适合什么场景&…...
企业品牌出海第一站 维基百科词条创建
维基百科是一部内容开放、自由的网络百科全书,旨在创造一个涵盖所有领域知识,服务所有互联网用户的知识性百科全书。其在国外应用非常广泛且认可度很高,国内品牌出海或国际品牌都很有必要创建企业自己的维基百科页面,以及企业高管的个人维基百科页面。 如…...
Windows下activemq集群配置(broker-network)
1.activemq版本信息 activemq:apache-activemq-5.18.4 2.activemq架构 3.activemq集群配置 activemq集群配置基于Networks of Brokers 这种HA方案的优点:是占用的节点数更少(只需要2个节点),而且2个broker都可以响应消息的接收与发送。不足ÿ…...
心理辅导平台系统
摘 要 中文本论文基于Java Web技术设计与实现了一个心理辅导平台。通过对国内外心理辅导平台发展现状的调研,本文分析了心理辅导平台的背景与意义,并提出了论文研究内容与创新点。在相关技术介绍部分,对Java Web、SpringBoot、B/S架构、MVC模…...
代理IP对SEO影响分析:提升网站排名的关键策略
你是否曾经为网站排名难以提升而苦恼?代理服务器或许就是你忽略的关键因素。在竞争激烈的互联网环境中,了解代理服务器对SEO的影响,有助于你采取更有效的策略,提高网站的搜索引擎排名。本文将为你详细分析代理服务器在SEO优化中的…...
【leetcode--三数之和】
这道题记得之前做过,但是想不起来了。。总结一下: 函数的主要步骤和关键点: 排序:对输入的整数数组nums进行排序。这是非常重要的,因为它允许我们使用双指针技巧来高效地找到满足条件的三元组。初始化:定…...
解决Java中的ClassCastException问题
解决Java中的ClassCastException问题 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java编程中,ClassCastException是一个常见的运行时异常&am…...
【TensorFlow深度学习】混合生成模型:结合AR与AE的创新尝试
混合生成模型:结合AR与AE的创新尝试 引言自回归模型与自动编码器的简述混合模型的创新尝试组合AR与AE:MADE混合模型在图学习中的应用 结论与展望 在自我监督学习的广阔天地里,混合生成模型以其独特的魅力,跨越了自回归(…...
Spring:Spring中分布式事务解决方案
一、前言 在Spring中,分布式事务是指涉及多个数据库或系统的事务处理,其中事务的参与者、支持事务的服务器、资源管理器以及事务管理器位于分布式系统的不同节点上。这样的架构使得两个或多个网络计算机上的数据能够被访问并更新,同时将这些操…...
音视频开发32 FFmpeg 编码- 视频编码 h264 参数相关
1. ffmpeg -h 这个命令总不会忘记,用这个先将ffmpeg所有的help信息都list出来 C:\Users\Administrator>ffmpeg -h ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 pro…...
标准版小程序订单中心path审核不通过处理教程
首先看自己小程序是不是已经审核通过并上线状态才在站内信里面提醒的? 如果没有提交过审核,请在提交的时候填写。path地址为:pages/goods/order_list/index 如果是已经上线的小程序,当时没要求填这个,但新的政策要求填…...
移植对话框MFC
VC版 MFC程序对话框资源移植 以下均拷贝自上面,仅用来记录 (部分有删除) 法1: Eg:将B工程调试好的对话框移植到A工程中 1.资源移植 1.1 在2017打开B工程,在工作区Resource标签页中选中Dialog文件夹下的资源文件,按…...
【开源的字典项目】【macOS】:在macOS上能打开mdd and mdx 的github开源项目
【开源的字典项目】【macOS】 在macOS上能打开mdd and mdx 的github开源项目 Here are some GitHub repositories that provide code for opening and reading mdd and mdx files in macOS: 1. MdxEdit: Repository: https://github.com/mdx-editorDescription: A free and …...
已解决javax.security.auth.login.LoginException:登录失败的正确解决方法,亲测有效!!!
已解决javax.security.auth.login.LoginException:登录失败的正确解决方法,亲测有效!!! 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 1. 检查用户名和密码 用户名和密码验证 2. 验证配置文件 …...
2741. 特别的排列 Medium
给你一个下标从 0 开始的整数数组 nums ,它包含 n 个 互不相同 的正整数。如果 nums 的一个排列满足以下条件,我们称它是一个特别的排列: 对于 0 < i < n - 1 的下标 i ,要么 nums[i] % nums[i1] 0 ,要么 nums[…...
读AI新生:破解人机共存密码笔记15辅助博弈
1. 辅助博弈 1.1. assistance game 1.2. 逆强化学习如今已经是构建有效的人工智能系统的重要工具,但它做了一些简化的假设 1.2.1. 机器人一旦通过观察人类学会了奖励函数,它就会采用奖励函数,这样它就可以执行相同的任务 1.2.1.1. 解决这…...
如何免费获取专业级多语言字体:Poppins字体完整使用秘籍
如何免费获取专业级多语言字体:Poppins字体完整使用秘籍 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins Poppins字体是一款完全开源免费的专业级几何无衬线字体&…...
BERT文本分割-中文模型企业应用:内容平台文档结构化
BERT文本分割-中文模型企业应用:内容平台文档结构化 1. 引言:为什么需要文本分割技术 在日常工作中,我们经常会遇到这样的情况:会议记录、访谈稿、讲座内容等长篇口语文字材料缺乏段落结构,阅读起来十分困难。这些由…...
动态规划专练:力扣第509、70、746题
由于对动态规划DP算法 掌握得不是很好,所以决定进行动态规划专项训练。动态规划五部曲①确定dp[i]含义②递推公式③dp数组如何初始化④遍历顺序⑤打印dp数组(debug)除了第五条在力扣上不开会员无法实现外,其余四项就是做出dp类型题…...
3分钟快速上手:DouYinBot抖音无水印视频下载终极指南 [特殊字符]
3分钟快速上手:DouYinBot抖音无水印视频下载终极指南 🚀 【免费下载链接】DouYinBot 抖音无水印下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot 在短视频内容创作和分享的时代,如何快速获取无水印的抖音视频成为创作者和…...
从像素到对象:如何用HANet和SNUNet搞定遥感影像中的‘小目标’与‘不平衡’难题?
从像素到对象:HANet与SNUNet在遥感影像小目标检测中的实战解析 当洪水退去后的灾损评估卫星图上,那些被冲毁的农舍屋顶往往只占据几个像素;在城市违建监测中,新增的违章建筑可能只是高分辨率影像中的微小色块。这些"小目标&q…...
YOLOv5 vs YOLOv8:2024年工业部署选型指南(附实测对比)
YOLOv5 vs YOLOv8:2024年工业部署选型指南(附实测对比) 在工业视觉检测领域,目标检测模型的选型直接关系到产线良率、运维成本和系统响应速度。作为YOLO系列当前最成熟的工业级解决方案,YOLOv5和YOLOv8的抉择让不少工程…...
实战详解:从零构建 LangChain 智能 Agent,让大模型真正“动起来”!
文章目录📖 一、为什么我们需要 Agent?🔄 Agent 核心工作流图解🛠️ 二、环境准备与核心组件核心组件介绍💻 三、实战代码:构建“全能数据分析师”Agent1. 定义工具 (Tools)2. 构建 Agent 逻辑 (ReAct 模式…...
STM32CubeMx 软件模拟SPI四种模式
(1)SPI的概念: SPI总线传输一共有4种模式,这4种模式分别由时钟极性(CPOL)和时钟相位(CPHA)来定义。 CPOL:规定了SCK时钟信号空闲状态的电平 CPHA:规定了数据是在SCK时钟的上升沿还是下降沿被采样 模式0&am…...
SDMatte Web界面实操手册:从上传到下载透明PNG的完整步骤
SDMatte Web界面实操手册:从上传到下载透明PNG的完整步骤 1. 认识SDMatte:你的智能抠图助手 SDMatte是一款专为高质量图像抠图设计的AI工具,它能帮你轻松完成各种复杂的抠图任务。想象一下,你拍了一张漂亮的玻璃杯照片ÿ…...
恒压供水系统:西门子224XP与昆仑TPC7062触摸屏的完美搭档
恒压供水西门子224XP昆仑tpc7062触摸屏.最多控制41泵,可直接用于项目工程 主要功能: 1、1-4台主泵十1辅泵、箱式、无负压式,一拖一,一拖多,一套程序适配多种供水模式。 2、实时报警和历史报警功能。 3、多种传感器支持,…...
